diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c
index 8c0a7e3..2056a8e 100644
--- a/src/libosmo-mgcp/mgcp_network.c
+++ b/src/libosmo-mgcp/mgcp_network.c
@@ -434,14 +434,14 @@
 	int32_t d;
 
 	/* initialize or re-initialize */
-	if (!state->stats_initialized || state->stats_ssrc != ssrc) {
-		state->stats_initialized = 1;
-		state->stats_base_seq = seq;
-		state->stats_max_seq = seq - 1;
-		state->stats_ssrc = ssrc;
-		state->stats_jitter = 0;
-		state->stats_transit = transit;
-		state->stats_cycles = 0;
+	if (!state->stats.initialized || state->stats.ssrc != ssrc) {
+		state->stats.initialized = 1;
+		state->stats.base_seq = seq;
+		state->stats.max_seq = seq - 1;
+		state->stats.ssrc = ssrc;
+		state->stats.jitter = 0;
+		state->stats.transit = transit;
+		state->stats.cycles = 0;
 	} else {
 		uint16_t udelta;
 
@@ -452,10 +452,10 @@
 		 * It can't wrap during the initialization so let's
 		 * skip it here. The Appendix A probably doesn't have
 		 * this issue because of the probation. */
-		udelta = seq - state->stats_max_seq;
+		udelta = seq - state->stats.max_seq;
 		if (udelta < RTP_MAX_DROPOUT) {
-			if (seq < state->stats_max_seq)
-				state->stats_cycles += RTP_SEQ_MOD;
+			if (seq < state->stats.max_seq)
+				state->stats.cycles += RTP_SEQ_MOD;
 		} else if (udelta <= RTP_SEQ_MOD - RTP_MAX_MISORDER) {
 			LOGP(DRTP, LOGL_NOTICE,
 			     "RTP seqno made a very large jump on 0x%x delta: %u\n",
@@ -467,12 +467,12 @@
 	 * taken closer to the read function. This was taken from the
 	 * Appendix A of RFC 3550. Timestamp and arrival_time have a 1/rate
 	 * resolution. */
-	d = transit - state->stats_transit;
-	state->stats_transit = transit;
+	d = transit - state->stats.transit;
+	state->stats.transit = transit;
 	if (d < 0)
 		d = -d;
-	state->stats_jitter += d - ((state->stats_jitter + 8) >> 4);
-	state->stats_max_seq = seq;
+	state->stats.jitter += d - ((state->stats.jitter + 8) >> 4);
+	state->stats.max_seq = seq;
 }
 
 /* The RFC 3550 Appendix A assumes there are multiple sources but
diff --git a/src/libosmo-mgcp/mgcp_stat.c b/src/libosmo-mgcp/mgcp_stat.c
index b84f5f2..54c4b66 100644
--- a/src/libosmo-mgcp/mgcp_stat.c
+++ b/src/libosmo-mgcp/mgcp_stat.c
@@ -30,10 +30,10 @@
 			struct mgcp_rtp_end *end, uint32_t *expected,
 			int *loss)
 {
-	*expected = state->stats_cycles + state->stats_max_seq;
-	*expected = *expected - state->stats_base_seq + 1;
+	*expected = state->stats.cycles + state->stats.max_seq;
+	*expected = *expected - state->stats.base_seq + 1;
 
-	if (!state->stats_initialized) {
+	if (!state->stats.initialized) {
 		*expected = 0;
 		*loss = 0;
 		return;
@@ -56,9 +56,9 @@
 /* Helper function for mgcp_format_stats_rtp() to calculate jitter */
 uint32_t calc_jitter(struct mgcp_rtp_state *state)
 {
-	if (!state->stats_initialized)
+	if (!state->stats.initialized)
 		return 0;
-	return state->stats_jitter >> 4;
+	return state->stats.jitter >> 4;
 }
 
 /* Generate statistics for an RTP connection */
