diff --git a/openbsc/tests/mgcp/mgcp_transcoding_test.c b/openbsc/tests/mgcp/mgcp_transcoding_test.c
index 6b33645..404268a 100644
--- a/openbsc/tests/mgcp/mgcp_transcoding_test.c
+++ b/openbsc/tests/mgcp/mgcp_transcoding_test.c
@@ -11,6 +11,7 @@
 #include <openbsc/gsm_data.h>
 #include <openbsc/mgcp.h>
 #include <openbsc/mgcp_internal.h>
+#include <openbsc/rtp.h>
 
 #include "bscconfig.h"
 #ifndef BUILD_MGCP_TRANSCODING
@@ -245,6 +246,56 @@
 	return 0;
 }
 
+static void test_rtp_seq_state(void)
+{
+	char buf[4096];
+	int len;
+	int cont;
+	void *ctx;
+	struct mgcp_endpoint *endp;
+	struct mgcp_process_rtp_state *state;
+	struct rtp_hdr *hdr;
+	uint32_t ts_no;
+	uint16_t seq_no;
+
+	given_configured_endpoint(160, 0, "pcma", "l16", &ctx, &endp);
+	state = endp->bts_end.rtp_process_data;
+	OSMO_ASSERT(!state->is_running);
+	OSMO_ASSERT(state->next_seq == 0);
+	OSMO_ASSERT(state->next_time == 0);
+
+	/* initialize packet */
+	len = audio_packets_pcma[0].len;
+	memcpy(buf, audio_packets_pcma[0].data, len);
+	cont = mgcp_transcoding_process_rtp(endp, &endp->bts_end, buf, &len, len);
+	OSMO_ASSERT(cont >= 0);
+	OSMO_ASSERT(state->is_running);
+	OSMO_ASSERT(state->next_seq == 2);
+	OSMO_ASSERT(state->next_time = 240);
+
+	/* verify that the right timestamp was written */
+	OSMO_ASSERT(len == audio_packets_pcma[0].len);
+	hdr = (struct rtp_hdr *) &buf[0];
+
+	memcpy(&ts_no, &hdr->timestamp, sizeof(ts_no));
+	OSMO_ASSERT(htonl(ts_no) == 160);
+	memcpy(&seq_no, &hdr->sequence, sizeof(seq_no));
+	OSMO_ASSERT(htons(seq_no) == 1);
+	/* Check the right sequence number is written */
+	state->next_seq = 1234;
+	len = audio_packets_pcma[0].len;
+	memcpy(buf, audio_packets_pcma[0].data, len);
+	cont = mgcp_transcoding_process_rtp(endp, &endp->bts_end, buf, &len, len);
+	OSMO_ASSERT(cont >= 0);
+	OSMO_ASSERT(len == audio_packets_pcma[0].len);
+	hdr = (struct rtp_hdr *) &buf[0];
+
+	memcpy(&seq_no, &hdr->sequence, sizeof(seq_no));
+	OSMO_ASSERT(htons(seq_no) == 1234);
+
+	talloc_free(ctx);
+}
+
 static int test_repacking(int in_samples, int out_samples, int no_transcode)
 {
 	char buf[4096] = {0x80, 0};
@@ -388,6 +439,7 @@
 	test_repacking(160, 240, 1);
 	test_repacking(160, 100, 0);
 	test_repacking(160, 100, 1);
+	test_rtp_seq_state();
 
 	return 0;
 }
diff --git a/openbsc/tests/mgcp/mgcp_transcoding_test.ok b/openbsc/tests/mgcp/mgcp_transcoding_test.ok
index 07929a8..e06b0e1 100644
--- a/openbsc/tests/mgcp/mgcp_transcoding_test.ok
+++ b/openbsc/tests/mgcp/mgcp_transcoding_test.ok
@@ -27,14 +27,14 @@
 == Transcoding test ==
 converting l16 -> gsm
 encoded:
-    80 0b 00 00 00 00 00 a0 11 22 33 44 d4 7c e3 e9 
+    80 0b 00 01 00 00 00 a0 11 22 33 44 d4 7c e3 e9 
     62 50 39 f0 f8 b4 68 ea 6c 0e 81 1b 56 2a d5 bc 
     69 9c d1 f0 66 7a ec 49 7a 33 3d 0a de 
 counted: 12
 == Transcoding test ==
 converting l16 -> pcma
 encoded:
-    80 0b 00 00 00 00 00 a0 11 22 33 44 d5 a5 a3 a5 
+    80 0b 00 01 00 00 00 a0 11 22 33 44 d5 a5 a3 a5 
     d5 25 23 25 d5 a5 a3 a5 d5 25 23 25 d5 a5 a3 a5 
     d5 25 23 25 d5 a5 a3 a5 d5 25 23 25 d5 a5 a3 a5 
     d5 25 23 25 d5 a5 a3 a5 d5 25 23 25 d5 a5 a3 a5 
@@ -49,7 +49,7 @@
 == Transcoding test ==
 converting gsm -> l16
 encoded:
-    80 03 00 00 00 00 00 a0 11 22 33 44 00 00 54 00 
+    80 03 00 01 00 00 00 a0 11 22 33 44 00 00 54 00 
     59 f0 34 20 c4 c8 b9 f8 e2 18 f1 e8 f2 28 f0 e0 
     46 08 4f 80 2c a0 a9 c8 80 00 c0 58 3f 80 63 c0 
     24 b8 fa b8 f6 88 0b a0 c8 70 a8 b0 c8 c0 3b a8 
@@ -81,7 +81,7 @@
 == Transcoding test ==
 converting gsm -> pcma
 encoded:
-    80 03 00 00 00 00 00 a0 11 22 33 44 d5 a0 a3 bf 
+    80 03 00 01 00 00 00 a0 11 22 33 44 d5 a0 a3 bf 
     38 24 08 19 1e 1b a4 a6 b3 20 2a 3a ba ad b7 60 
     17 92 3e 20 3e b8 ac b2 32 2c 20 02 b6 be be 82 
     04 27 26 35 8d a4 a6 b5 35 21 20 31 8d a7 a6 b6 
@@ -96,7 +96,7 @@
 == Transcoding test ==
 converting pcma -> l16
 encoded:
-    80 08 00 00 00 00 00 a0 11 22 33 44 00 08 42 00 
+    80 08 00 01 00 00 00 a0 11 22 33 44 00 08 42 00 
     5a 00 42 00 00 08 be 00 a6 00 be 00 00 08 42 00 
     5a 00 42 00 00 08 be 00 a6 00 be 00 00 08 42 00 
     5a 00 42 00 00 08 be 00 a6 00 be 00 00 08 42 00 
@@ -121,7 +121,7 @@
 == Transcoding test ==
 converting pcma -> gsm
 encoded:
-    80 08 00 00 00 00 00 a0 11 22 33 44 d4 b9 f4 5d 
+    80 08 00 01 00 00 00 a0 11 22 33 44 d4 b9 f4 5d 
     d9 50 5a e1 a0 cd 76 ea 52 0e 87 53 ad d4 ea a2 
     0a 63 ca e9 60 79 e2 2a 25 d2 c0 f3 39 
 counted: 12
@@ -161,7 +161,7 @@
 == Transcoding test ==
 converting gsm -> pcma
 encoded:
-    80 08 00 00 00 00 00 a0 11 22 33 44 d5 a0 a3 bf 
+    80 08 00 01 00 00 00 a0 11 22 33 44 d5 a0 a3 bf 
     38 24 08 19 1e 1b a4 a6 b3 20 2a 3a ba ad b7 60 
     17 92 3e 20 3e b8 ac b2 32 2c 20 02 b6 be be 82 
     04 27 26 35 8d a4 a6 b5 35 21 20 31 8d a7 a6 b6 
