diff --git a/openbsc/include/openbsc/mgcp_internal.h b/openbsc/include/openbsc/mgcp_internal.h
index 62161fd..adb01f4 100644
--- a/openbsc/include/openbsc/mgcp_internal.h
+++ b/openbsc/include/openbsc/mgcp_internal.h
@@ -36,6 +36,12 @@
 	MGCP_CONN_LOOPBACK  = 4,
 };
 
+struct mgcp_rtp_state {
+	int initialized;
+
+	uint16_t seq_no;
+	int lost_no;
+};
 
 struct mgcp_endpoint {
 	int ci;
@@ -73,10 +79,8 @@
 	unsigned int in_remote;
 
 	/* sequence bits */
-	uint16_t net_seq_no;
-	uint16_t bts_seq_no;
-	int net_lost_no;
-	int bts_lost_no;
+	struct mgcp_rtp_state net_state;
+	struct mgcp_rtp_state bts_state;
 };
 
 #define ENDPOINT_NUMBER(endp) abs(endp - endp->cfg->endpoints)
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);
 	}
 
