diff --git a/hive/indexer/blocks.py b/hive/indexer/blocks.py
index 6085b27ef63f437d60b585cf70b72a2f81856bd3..ceb9c3e5fdf68d6fb2a7b35bac85473582051d3a 100644
--- a/hive/indexer/blocks.py
+++ b/hive/indexer/blocks.py
@@ -207,7 +207,7 @@ class Blocks:
                     if not is_initial_sync:
                         Accounts.dirty(op['author']) # lite - rep
                         Accounts.dirty(op['voter']) # lite - stats
-                    Votes.vote_op(op)
+                    Votes.vote_op(op, cls._head_block_date)
 
                 # misc ops
                 elif op_type == 'transfer_operation':
diff --git a/hive/indexer/posts.py b/hive/indexer/posts.py
index 10b1da8dde28153b14fd6d7fb541a2aeaafdcbb9..36759eb1855eadd4c42dcb3bfa9d3840f4513145 100644
--- a/hive/indexer/posts.py
+++ b/hive/indexer/posts.py
@@ -161,7 +161,6 @@ class Posts:
                   payout                = COALESCE( CAST( data_source.payout as DECIMAL ),              ihp.payout ),
                   pending_payout        = COALESCE( CAST( data_source.pending_payout as DECIMAL ),      ihp.pending_payout ),
                   payout_at             = COALESCE( CAST( data_source.payout_at as TIMESTAMP ),         ihp.payout_at ),
-                  updated_at            = data_source.updated_at,
                   last_payout           = COALESCE( CAST( data_source.last_payout as TIMESTAMP ),       ihp.last_payout ),
                   cashout_time          = COALESCE( CAST( data_source.cashout_time as TIMESTAMP ),      ihp.cashout_time ),
                   is_paidout            = COALESCE( CAST( data_source.is_paidout as BOOLEAN ),          ihp.is_paidout )
@@ -177,7 +176,6 @@ class Posts:
                       t.payout,
                       t.pending_payout,
                       t.payout_at,
-                      t.updated_at,
                       t.last_payout,
                       t.cashout_time,
                       t.is_paidout
@@ -196,7 +194,6 @@ class Posts:
                       payout,
                       pending_payout,
                       payout_at,
-                      updated_at,
                       last_payout,
                       cashout_time,
                       is_paidout)
@@ -310,7 +307,7 @@ class Posts:
                 payout_at = date  #Here should be `cashout_time`
                 last_payout = date
 
-            cls._comment_payout_ops.append("('{}', '{}', {}, {}, {}, {}, {}, {}, {}, {}, {}, '{}'::timestamp, {}, {}, {})".format(
+            cls._comment_payout_ops.append("('{}', '{}', {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {})".format(
               author,
               permlink,
               "NULL" if ( total_payout_value is None ) else ( "'{}'".format( legacy_amount(total_payout_value) ) ),
@@ -323,7 +320,6 @@ class Posts:
               "NULL" if ( pending_payout is None ) else pending_payout,
 
               "NULL" if ( payout_at is None ) else ( "'{}'::timestamp".format( payout_at ) ),
-              date,#updated_at
               "NULL" if ( last_payout is None ) else ( "'{}'::timestamp".format( last_payout ) ),
               "NULL" if ( cashout_time is None ) else ( "'{}'::timestamp".format( cashout_time ) ),
 
diff --git a/hive/indexer/votes.py b/hive/indexer/votes.py
index 63b7d019f0c8c14b554534f4004844d5eccfa35a..312b0820cc2afe5260dd2b04b1131d0c0c583219 100644
--- a/hive/indexer/votes.py
+++ b/hive/indexer/votes.py
@@ -49,11 +49,12 @@ class Votes:
     inside_flush = False
 
     @classmethod
-    def vote_op(cls, vop):
+    def vote_op(cls, vote_operation, date):
         """ Process vote_operation """
-        voter = vop['voter']
-        author = vop['author']
-        permlink = vop['permlink']
+        voter     = vote_operation['voter']
+        author    = vote_operation['author']
+        permlink  = vote_operation['permlink']
+        weight    = vote_operation['weight']
 
         if(cls.inside_flush):
             log.info("Adding new vote-info into '_votes_data' dict")
@@ -64,10 +65,10 @@ class Votes:
         cls._votes_data[key] = dict(voter=voter,
                                     author=author,
                                     permlink=permlink,
-                                    vote_percent=0,
+                                    vote_percent=weight,
                                     weight=0,
                                     rshares=0,
-                                    last_update="1969-12-31T23:59:59")
+                                    last_update=date)
 
     @classmethod
     def effective_comment_vote_op(cls, key, vop, date):
@@ -79,7 +80,6 @@ class Votes:
 
         assert key in cls._votes_data
 
-        cls._votes_data[key]["vote_percent"]  = vop["vote_percent"]
         cls._votes_data[key]["weight"]        = vop["weight"]
         cls._votes_data[key]["rshares"]       = vop["rshares"]
         cls._votes_data[key]["last_update"]   = date
@@ -90,33 +90,29 @@ class Votes:
         cls.inside_flush = True
         if cls._votes_data:
             sql = """
-                    INSERT INTO hive_votes
-                    (post_id, voter_id, author_id, permlink_id, weight, rshares, vote_percent, last_update) 
-                    select data_source.post_id, data_source.voter_id, data_source.author_id, data_source.permlink_id, data_source.weight, data_source.rshares, data_source.vote_percent, data_source.last_update
-                    from 
-                    (
-                    SELECT hp.id as post_id, ha_v.id as voter_id, ha_a.id as author_id, hpd_p.id as permlink_id, t.weight, t.rshares, t.vote_percent, t.last_update
-                    from
-                    (
-                    VALUES
-                    --   voter, author, permlink, weight, rshares, vote_percent, last_update
-                      {}
-                    ) AS T(voter, author, permlink, weight, rshares, vote_percent, last_update)
-                    INNER JOIN hive_accounts ha_v ON ha_v.name = t.voter
-                    INNER JOIN hive_accounts ha_a ON ha_a.name = t.author
-                    INNER JOIN hive_permlink_data hpd_p ON hpd_p.permlink = t.permlink
-                    INNER JOIN hive_posts hp ON hp.author_id = ha_a.id AND hp.permlink_id = hpd_p.id
-                    ) as data_source(post_id, voter_id, author_id, permlink_id, weight, rshares, vote_percent, last_update)
-                    ON CONFLICT ON CONSTRAINT hive_votes_ux1 DO
-                      UPDATE
-                        SET
-                          weight = EXCLUDED.weight,
-                          rshares = EXCLUDED.rshares,
-                          vote_percent = EXCLUDED.vote_percent,
-                          last_update = EXCLUDED.last_update,
-                          num_changes = hive_votes.num_changes + 1
-                      WHERE hive_votes.voter_id = EXCLUDED.voter_id and hive_votes.author_id = EXCLUDED.author_id and hive_votes.permlink_id = EXCLUDED.permlink_id;
-                      """
+                INSERT INTO hive_votes
+                (post_id, voter_id, author_id, permlink_id, weight, rshares, vote_percent, last_update) 
+                SELECT hp.id as post_id, ha_v.id as voter_id, ha_a.id as author_id, hpd_p.id as permlink_id, t.weight, t.rshares, t.vote_percent, t.last_update
+                FROM
+                (
+                VALUES
+                  -- voter, author, permlink, weight, rshares, vote_percent, last_update
+                  {}
+                ) AS T(voter, author, permlink, weight, rshares, vote_percent, last_update)
+                INNER JOIN hive_accounts ha_v ON ha_v.name = t.voter
+                INNER JOIN hive_accounts ha_a ON ha_a.name = t.author
+                INNER JOIN hive_permlink_data hpd_p ON hpd_p.permlink = t.permlink
+                INNER JOIN hive_posts hp ON hp.author_id = ha_a.id AND hp.permlink_id = hpd_p.id
+                ON CONFLICT ON CONSTRAINT hive_votes_ux1 DO
+                UPDATE
+                  SET
+                    weight = (CASE (SELECT hp.is_paidout FROM hive_posts hp WHERE hp.id = EXCLUDED.post_id) WHEN true THEN hive_votes.weight ELSE EXCLUDED.weight END),
+                    rshares = (CASE (SELECT hp.is_paidout FROM hive_posts hp WHERE hp.id = EXCLUDED.post_id) WHEN true THEN hive_votes.rshares ELSE EXCLUDED.rshares END),
+                    vote_percent = EXCLUDED.vote_percent,
+                    last_update = EXCLUDED.last_update,
+                    num_changes = hive_votes.num_changes + 1
+                  WHERE hive_votes.voter_id = EXCLUDED.voter_id and hive_votes.author_id = EXCLUDED.author_id and hive_votes.permlink_id = EXCLUDED.permlink_id;
+                """
 
             values = []
             values_limit = 1000
diff --git a/tests/tests_api b/tests/tests_api
index 113cb05cc2dc35fe6e6e149fc3ecb8ae286d4cc4..619f51ed6c85a016621b12fa1264c12c7d3d3156 160000
--- a/tests/tests_api
+++ b/tests/tests_api
@@ -1 +1 @@
-Subproject commit 113cb05cc2dc35fe6e6e149fc3ecb8ae286d4cc4
+Subproject commit 619f51ed6c85a016621b12fa1264c12c7d3d3156