diff --git a/openbsc/src/mgcp/mgcp_network.c b/openbsc/src/mgcp/mgcp_network.c
index 5923fea..d2dbeeb 100644
--- a/openbsc/src/mgcp/mgcp_network.c
+++ b/openbsc/src/mgcp/mgcp_network.c
@@ -94,7 +94,7 @@
 			endp->net_rtp, buf, 1);
 }
 
-static void patch_and_count(uint16_t *last_seq, int *lost, int payload, char *data, int len)
+static void patch_and_count(struct mgcp_rtp_state *state, int payload, char *data, int len)
 {
 	uint16_t seq;
 	struct rtp_hdr *rtp_hdr;
@@ -105,14 +105,13 @@
 	rtp_hdr = (struct rtp_hdr *) data;
 	seq = ntohs(rtp_hdr->sequence);
 
-	/* 0 is assumed to be not set */
-	if (*last_seq == 0)
-		*last_seq = seq;
-	else if (*last_seq + 1 != seq)
-		*lost = abs(seq - (*last_seq + 1));
+	if (!state->initialized) {
+		state->seq_no = seq;
+		state->initialized = 1;
+	} else if (state->seq_no + 1u != seq)
+		state->lost_no = abs(seq - (state->seq_no + 1));
 
-	*last_seq = seq;
-
+	state->seq_no = seq;
 
 	if (payload < 0)
 		return;
@@ -210,14 +209,14 @@
 
 	if (dest == DEST_NETWORK) {
 		if (proto == PROTO_RTP)
-			patch_and_count(&endp->bts_seq_no, &endp->bts_lost_no,
+			patch_and_count(&endp->bts_state,
 					endp->net_payload_type, buf, rc);
 		return udp_send(fd->fd, &endp->remote,
 			     proto == PROTO_RTP ? endp->net_rtp : endp->net_rtcp,
 			     buf, rc);
 	} else {
 		if (proto == PROTO_RTP)
-			patch_and_count(&endp->net_seq_no, &endp->net_lost_no,
+			patch_and_count(&endp->net_state,
 					endp->bts_payload_type, buf, rc);
 		return udp_send(fd->fd, &endp->bts,
 			     proto == PROTO_RTP ? endp->bts_rtp : endp->bts_rtcp,
diff --git a/openbsc/src/mgcp/mgcp_protocol.c b/openbsc/src/mgcp/mgcp_protocol.c
index 5883c15..2a5ce08 100644
--- a/openbsc/src/mgcp/mgcp_protocol.c
+++ b/openbsc/src/mgcp/mgcp_protocol.c
@@ -763,8 +763,8 @@
 	memset(&endp->remote, 0, sizeof(endp->remote));
 	memset(&endp->bts, 0, sizeof(endp->bts));
 
-	endp->net_seq_no = endp->bts_seq_no = 0;
-	endp->net_lost_no = endp->bts_lost_no = 0;
+	memset(&endp->net_state, 0, sizeof(endp->net_state));
+	memset(&endp->bts_state, 0, sizeof(endp->bts_state));
 
 	endp->conn_mode = endp->orig_mode = MGCP_CONN_NONE;
 }
diff --git a/openbsc/src/mgcp/mgcp_vty.c b/openbsc/src/mgcp/mgcp_vty.c
index 45df0a2..a179b7a 100644
--- a/openbsc/src/mgcp/mgcp_vty.c
+++ b/openbsc/src/mgcp/mgcp_vty.c
@@ -87,8 +87,8 @@
 			i, endp->ci,
 			ntohs(endp->net_rtp), ntohs(endp->net_rtcp),
 			ntohs(endp->bts_rtp), ntohs(endp->bts_rtcp),
-			inet_ntoa(endp->bts), endp->in_bts, endp->bts_lost_no,
-			endp->in_remote, endp->net_lost_no,
+			inet_ntoa(endp->bts), endp->in_bts, endp->bts_state.lost_no,
+			endp->in_remote, endp->net_state.lost_no,
 			VTY_NEWLINE);
 	}
 
