diff --git a/src/stats.c b/src/stats.c
index fa56f50..0a1a148 100644
--- a/src/stats.c
+++ b/src/stats.c
@@ -101,6 +101,8 @@
 	else
 		srep->running = 1;
 
+	srep->force_single_flush = 1;
+
 	return rc;
 }
 
@@ -582,13 +584,13 @@
 	struct osmo_stats_reporter *srep;
 	int64_t delta = rate_ctr_difference(ctr);
 
-	if (delta == 0)
-		return 0;
-
 	llist_for_each_entry(srep, &osmo_stats_reporter_list, list) {
 		if (!srep->running)
 			continue;
 
+		if (delta == 0 && !srep->force_single_flush)
+			continue;
+
 		if (!osmo_stats_reporter_check_config(srep,
 			       ctrg->idx, ctrg->desc->class_id))
 			return 0;
@@ -628,12 +630,21 @@
 	struct osmo_stats_reporter *srep;
 	int32_t idx = current_stat_item_index;
 	int32_t value;
+	int have_value;
 
-	while (osmo_stat_item_get_next(item, &idx, &value) > 0) {
+	have_value = osmo_stat_item_get_next(item, &idx, &value) > 0;
+	if (!have_value)
+		/* Send the last value in case a flush is requested */
+		value = osmo_stat_item_get_last(item);
+
+	do {
 		llist_for_each_entry(srep, &osmo_stats_reporter_list, list) {
 			if (!srep->running)
 				continue;
 
+			if (!have_value && !srep->force_single_flush)
+				continue;
+
 			if (!osmo_stats_reporter_check_config(srep,
 					statg->idx, statg->desc->class_id))
 				return 0;
@@ -641,7 +652,12 @@
 			osmo_stats_reporter_send_item(srep, statg,
 				item->desc, value);
 		}
-	}
+
+		if (!have_value)
+			break;
+
+		have_value = osmo_stat_item_get_next(item, &idx, &value) > 0;
+	} while (have_value);
 
 	return 0;
 }
@@ -666,13 +682,13 @@
 
 	int delta = osmo_counter_difference(counter);
 
-	if (delta == 0)
-		return 0;
-
 	llist_for_each_entry(srep, &osmo_stats_reporter_list, list) {
 		if (!srep->running)
 			continue;
 
+		if (delta == 0 && !srep->force_single_flush)
+			continue;
+
 		osmo_stats_reporter_send_counter(srep, NULL, &desc,
 			counter->value, delta);
 
@@ -694,6 +710,7 @@
 			continue;
 
 		osmo_stats_reporter_send_buffer(srep);
+		srep->force_single_flush = 0;
 	}
 }
 
