diff --git a/pyfstat/core.py b/pyfstat/core.py
index 4bf5ae16fadfe825bfe50747e75590c8cd6303d0..a3b6b310495703b4e29fc8d46d6e4ba6c9b07dc2 100755
--- a/pyfstat/core.py
+++ b/pyfstat/core.py
@@ -714,7 +714,7 @@ class ComputeFstat(BaseSearchClass):
             # actual (t0,tau) window was set with tstart, tend before
             self.windowRange.tau = int(tend - tstart)  # TYPE UINT4
 
-        self.FstatMap = tcw.call_compute_transient_fstat_map(
+        self.FstatMap, self.timingFstatMap = tcw.call_compute_transient_fstat_map(
             self.tCWFstatMapVersion, self.tCWFstatMapFeatures,
             self.FstatResults.multiFatoms[0], self.windowRange)
         if self.tCWFstatMapVersion == 'lal':
diff --git a/pyfstat/grid_based_searches.py b/pyfstat/grid_based_searches.py
index 3a2a4cdd6e9a62ba89a010bb18e1154e7440609e..df4c9d5b5ebb93acd1f2d6251bef644f7d167fca 100644
--- a/pyfstat/grid_based_searches.py
+++ b/pyfstat/grid_based_searches.py
@@ -459,10 +459,12 @@ class TransientGridSearch(GridSearch):
             tCWfilebase = os.path.splitext(self.out_file)[0] + '_tCW_'
             logging.info('Will save per-Doppler Fstatmap' \
                          ' results to {}*.dat'.format(tCWfilebase))
+        self.timingFstatMap = 0.
         for vals in tqdm(self.input_data):
             detstat = self.search.get_det_stat(*vals)
             windowRange = getattr(self.search, 'windowRange', None)
             FstatMap = getattr(self.search, 'FstatMap', None)
+            self.timingFstatMap += getattr(self.search, 'timingFstatMap', None)
             thisCand = list(vals) + [detstat]
             if getattr(self, 'transientWindowType', None):
                 if self.tCWFstatMapVersion == 'lal':
@@ -491,6 +493,8 @@ class TransientGridSearch(GridSearch):
             if self.outputAtoms:
                 self.search.write_atoms_to_file(os.path.splitext(self.out_file)[0])
 
+        logging.info('Total time spent computing transient F-stat maps: {:.2f}s'.format(self.timingFstatMap))
+
         data = np.array(data, dtype=np.float)
         if return_data:
             return data
diff --git a/pyfstat/tcw_fstat_map_funcs.py b/pyfstat/tcw_fstat_map_funcs.py
index 7d7728a7fd00769de516193309fc97ea69afb9bc..5a05cba50fb8a4e2b38f0ddd131c90fa5ef65590 100644
--- a/pyfstat/tcw_fstat_map_funcs.py
+++ b/pyfstat/tcw_fstat_map_funcs.py
@@ -3,6 +3,7 @@
 import numpy as np
 import os
 import logging
+from time import time
 
 # optional imports
 import importlib as imp
@@ -185,14 +186,16 @@ def call_compute_transient_fstat_map ( version,
 
     if version in fstatmap_versions:
         if features[version]:
+            time0 = time()
             FstatMap = fstatmap_versions[version](multiFstatAtoms, windowRange)
+            timingFstatMap = time()-time0
         else:
             raise Exception('Required module(s) for transient F-stat map' \
                             ' method "{}" not available!'.format(version))
     else:
         raise Exception('Transient F-stat map method "{}"' \
                         ' not implemented!'.format(version))
-    return FstatMap
+    return FstatMap, timingFstatMap
 
 
 def reshape_FstatAtomsVector ( atomsVector ):