diff --git a/openbsc/include/openbsc/statistics.h b/openbsc/include/openbsc/statistics.h
index 9d761c6..1d56054 100644
--- a/openbsc/include/openbsc/statistics.h
+++ b/openbsc/include/openbsc/statistics.h
@@ -26,4 +26,6 @@
 struct counter *counter_alloc(const char *name);
 void counter_free(struct counter *ctr);
 
+int counters_for_each(int (*handle_counter)(struct counter *, void *), void *data);
+
 #endif /* _STATISTICS_H */
diff --git a/openbsc/src/bsc_hack.c b/openbsc/src/bsc_hack.c
index 0d20d43..8792cc3 100644
--- a/openbsc/src/bsc_hack.c
+++ b/openbsc/src/bsc_hack.c
@@ -43,6 +43,11 @@
 static const char *database_name = "hlr.sqlite3";
 static const char *config_file = "openbsc.cfg";
 
+
+/* timer to store statistics */
+#define DB_SYNC_INTERVAL	60, 0
+static struct timer_list db_sync_timer;
+
 extern int bsc_bootstrap_network(int (*mmc_rev)(struct gsm_network *, int, void *),
 				 const char *cfg_file);
 extern int bsc_shutdown_net(struct gsm_network *net);
@@ -155,6 +160,19 @@
 	}
 }
 
+/* timer handling */
+static int _db_store_counter(struct counter *counter, void *data)
+{
+	return db_store_counter(counter);
+}
+
+static void db_sync_timer_cb(void *data)
+{
+	/* store counters to database and re-schedule */
+	counters_for_each(_db_store_counter, NULL);
+	bsc_schedule_timer(&db_sync_timer, DB_SYNC_INTERVAL);
+}
+
 int main(int argc, char **argv)
 {
 	int rc;
@@ -189,6 +207,11 @@
 	}
 	printf("DB: Database prepared.\n");
 
+	/* setup the timer */
+	db_sync_timer.cb = db_sync_timer_cb;
+	db_sync_timer.data = NULL;
+	bsc_schedule_timer(&db_sync_timer, DB_SYNC_INTERVAL);
+
 	rc = bsc_bootstrap_network(mncc_recv, config_file);
 	if (rc < 0)
 		exit(1);
diff --git a/openbsc/src/statistics.c b/openbsc/src/statistics.c
index 4cc281d..9bd44f3 100644
--- a/openbsc/src/statistics.c
+++ b/openbsc/src/statistics.c
@@ -33,10 +33,6 @@
 
 static LLIST_HEAD(counters);
 
-static struct timer_list db_sync_timer;
-
-#define DB_SYNC_INTERVAL	60, 0
-
 struct counter *counter_alloc(const char *name)
 {
 	struct counter *ctr = talloc_zero(tall_bsc_ctx, struct counter);
@@ -56,13 +52,13 @@
 	talloc_free(ctr);
 }
 
-static int counters_store_db(void)
+int counters_for_each(int (*handle_counter)(struct counter *, void *), void *data)
 {
 	struct counter *ctr;
 	int rc = 0;
 
 	llist_for_each_entry(ctr, &counters, list) {
-		rc = db_store_counter(ctr);
+		rc = handle_counter(ctr, data);
 		if (rc < 0)
 			return rc;
 	}
@@ -70,16 +66,3 @@
 	return rc;
 }
 
-static void db_sync_timer_cb(void *data)
-{
-	/* store counters to database and re-schedule */
-	counters_store_db();
-	bsc_schedule_timer(&db_sync_timer, DB_SYNC_INTERVAL);
-}
-
-static __attribute__((constructor)) void on_dso_load_stat(void)
-{
-	db_sync_timer.cb = db_sync_timer_cb;
-	db_sync_timer.data = NULL;
-	bsc_schedule_timer(&db_sync_timer, DB_SYNC_INTERVAL);
-}
