diff --git a/synapse/app/homeserver.py b/synapse/app/homeserver.py
index 46325d8521f6073521e1839f787272f341e1c84a..fba51c26e86925e87f982d041596d3c31af38160 100755
--- a/synapse/app/homeserver.py
+++ b/synapse/app/homeserver.py
@@ -519,10 +519,11 @@ def run(hs):
     # table will decrease
     clock.looping_call(generate_user_daily_visit_stats, 5 * 60 * 1000)
 
+    @defer.inlineCallbacks
     def generate_monthly_active_users():
         count = 0
         if hs.config.limit_usage_by_mau:
-            count = hs.get_datastore().count_monthly_users()
+            count = yield hs.get_datastore().count_monthly_users()
         current_mau_gauge.set(float(count))
         max_mau_value_gauge.set(float(hs.config.max_mau_value))