diff --git a/hive/indexer/blocks.py b/hive/indexer/blocks.py
index 3a1949096e165e6a06b87a68574fdd658310b985..9a5d4cd109fa35924492a55457c03ffd3c30a4d7 100644
--- a/hive/indexer/blocks.py
+++ b/hive/indexer/blocks.py
@@ -29,6 +29,13 @@ log = logging.getLogger(__name__)
 
 DB = Db.instance()
 
+def time_collector(f):
+    startTime = FSM.start()
+    result = f()
+    elapsedTime = FSM.stop(startTime)
+
+    return (result, elapsedTime)
+
 class Blocks:
     """Processes blocks, dispatches work, manages `hive_blocks` table."""
     blocks_to_flush = []
@@ -121,26 +128,25 @@ class Blocks:
         flush_time = register_time(flush_time, "Blocks", cls._flush_blocks())
         flush_time = register_time(flush_time, "Posts", Posts.flush())
 
-#        flush_time = register_time(flush_time, "PostDataCache", PostDataCache.flush())
-#        flush_time = register_time(flush_time, "Tags", Tags.flush())
-#        flush_time = register_time(flush_time, "Votes", Votes.flush())
         folllow_items = len(Follow.follow_items_to_flush) + Follow.flush(trx=False)
         flush_time = register_time(flush_time, "Follow", folllow_items)
-#        flush_time = register_time(flush_time, "Reputations", cls._flush_reputations())
 
         completedThreads = 0;
 
         pool = ThreadPoolExecutor(max_workers = len(cls._concurrent_flush))
-        flush_futures = {pool.submit(f): (description, c) for (description, f, c) in cls._concurrent_flush}
+        flush_futures = {pool.submit(time_collector, f): (description, c) for (description, f, c) in cls._concurrent_flush}
         for future in concurrent.futures.as_completed(flush_futures):
             (description, c) = flush_futures[future]
             completedThreads = completedThreads + 1
             try:
-                n = future.result()
+                (n, elapsedTime) = future.result()
+                assert n is not None
                 assert not c.tx_active()
 
-                if n > 0:
-                    log.info('%r flush generated %d records' % (description, n))
+                FSM.flush_stat(description, elapsedTime, n)
+
+#                if n > 0:
+#                    log.info('%r flush generated %d records' % (description, n))
             except Exception as exc:
                 log.error('%r generated an exception: %s' % (description, exc))
                 raise exc
diff --git a/hive/indexer/reputations.py b/hive/indexer/reputations.py
index 127c9fce1a9a2e87ac0d4e9e10ae60c94e5a2a75..003662fecd924097fd08805d32ca2c6a3f06ea42 100644
--- a/hive/indexer/reputations.py
+++ b/hive/indexer/reputations.py
@@ -17,6 +17,8 @@ class Reputations(DbAdapterHolder):
 
     @classmethod
     def flush(self):
+        self._queries.clear()
+
         if not self._queries:
             return 0