diff --git a/hive/db/schema.py b/hive/db/schema.py
index 5be435ebb6916305012c52bff43e9890b1a371e7..c9699f7706f321d5567c8560e9a69e71f464d5fc 100644
--- a/hive/db/schema.py
+++ b/hive/db/schema.py
@@ -872,14 +872,15 @@ def setup(db):
     db.query_no_return(sql)
 
     sql = """
-        DROP VIEW IF EXISTS list_votes_by_voter_comment;
+        DROP VIEW IF EXISTS list_votes( character varying, character varying, character varying, int, bool );
 
-        CREATE OR REPLACE FUNCTION public.list_votes_by_voter_comment
+        CREATE OR REPLACE FUNCTION public.list_votes
         (
           in _VOTER hive_accounts.name%TYPE,
           in _AUTHOR hive_accounts.name%TYPE,
           in _PERMLINK hive_permlink_data.permlink%TYPE,
-          in _LIMIT INT
+          in _LIMIT INT,
+          in _IS_VOTER_COMMENT_SORT BOOLEAN
         )
         RETURNS TABLE
         (
@@ -912,29 +913,55 @@ def setup(db):
 
         _PERMLINK_ID = find_comment_id( _AUTHOR, _PERMLINK, True);
 
-        RETURN QUERY
-        (
-                SELECT
-                    v.voter,
-                    v.author,
-                    v.permlink,
-                    v.weight,
-                    v.rshares,
-                    v.percent,
-                    v.time,
-                    v.num_changes,
-                    v.reputation
-                FROM
-                    hive_votes_accounts_permlinks_view v
-                    WHERE
-                        ( v.voter_id = _VOTER_ID and v.permlink_id >= _PERMLINK_ID )
-                        OR
-                        ( v.voter_id > _VOTER_ID )
-                    ORDER BY
-                      voter_id,
-                      permlink_id
-                LIMIT _LIMIT
-        );
+        IF _IS_VOTER_COMMENT_SORT = True THEN
+          RETURN QUERY
+          (
+                  SELECT
+                      v.voter,
+                      v.author,
+                      v.permlink,
+                      v.weight,
+                      v.rshares,
+                      v.percent,
+                      v.time,
+                      v.num_changes,
+                      v.reputation
+                  FROM
+                      hive_votes_accounts_permlinks_view v
+                      WHERE
+                          ( v.voter_id = _VOTER_ID and v.permlink_id >= _PERMLINK_ID )
+                          OR
+                          ( v.voter_id > _VOTER_ID )
+                      ORDER BY
+                        voter_id,
+                        permlink_id
+                  LIMIT _LIMIT
+          );
+        ELSE
+          RETURN QUERY
+          (
+                  SELECT
+                      v.voter,
+                      v.author,
+                      v.permlink,
+                      v.weight,
+                      v.rshares,
+                      v.percent,
+                      v.time,
+                      v.num_changes,
+                      v.reputation
+                  FROM
+                      hive_votes_accounts_permlinks_view v
+                      WHERE
+                          ( v.permlink_id = _PERMLINK_ID and v.voter_id >= _VOTER_ID )
+                          OR
+                          ( v.permlink_id > _PERMLINK_ID )
+                      ORDER BY
+                        permlink_id,
+                        voter_id
+                  LIMIT _LIMIT
+          );
+        END IF;
 
         END
         $BODY$;
diff --git a/hive/server/database_api/methods.py b/hive/server/database_api/methods.py
index 2d3129933e228579b73079737054982f47b150dc..96fc8a299ecb75cc4c456a94c1e8c846584a1514 100644
--- a/hive/server/database_api/methods.py
+++ b/hive/server/database_api/methods.py
@@ -224,24 +224,12 @@ async def list_votes(context, start: list, limit: int, order: str, votes_present
     assert len(start) == 3, "Expecting 3 elements in start array"
     db = context['db']
 
-    sql = ""
-
-    if order == "by_comment_voter":
-        sql += """
-            WHERE
-                author >= :author AND 
-                permlink >= :permlink AND 
-                voter >= :voter
-            ORDER BY
-                post_id ASC,
-                voter_id ASC
-            LIMIT 
-                :limit
-        """
-        rows = await db.query_all(sql, author=start[0], permlink=start[1], voter=start[2], limit=limit)
+    sql=""
 
     if order == "by_voter_comment":
-        sql = "select * from list_votes_by_voter_comment( '{}', '{}', '{}', {} )".format( start[0], start[1], start[2], limit )
+        sql = "select * from list_votes( '{}', '{}', '{}', {}, true )".format( start[0], start[1], start[2], limit )
+    else:
+        sql = "select * from list_votes( '{}', '{}', '{}', {}, false )".format( start[2], start[0], start[1], limit )
 
     rows = await db.query_all(sql)