diff --git a/openbsc/doc/examples/osmo-bsc_mgcp/mgcp.cfg b/openbsc/doc/examples/osmo-bsc_mgcp/mgcp.cfg
index 7409dd0..791497f 100644
--- a/openbsc/doc/examples/osmo-bsc_mgcp/mgcp.cfg
+++ b/openbsc/doc/examples/osmo-bsc_mgcp/mgcp.cfg
@@ -12,6 +12,7 @@
   bind ip 127.0.0.1
   bind port 2427
   rtp base 4000
+  rtp force-ptime 20
   sdp audio payload number 98
   sdp audio payload name AMR/8000
   number endpoints 31
diff --git a/openbsc/src/libmgcp/mgcp_vty.c b/openbsc/src/libmgcp/mgcp_vty.c
index 0b11669..e42c691 100644
--- a/openbsc/src/libmgcp/mgcp_vty.c
+++ b/openbsc/src/libmgcp/mgcp_vty.c
@@ -2,7 +2,7 @@
 /* The protocol implementation */
 
 /*
- * (C) 2009-2011 by Holger Hans Peter Freyther <zecke@selfish.org>
+ * (C) 2009-2014 by Holger Hans Peter Freyther <zecke@selfish.org>
  * (C) 2009-2011 by On-Waves
  * All Rights Reserved
  *
@@ -128,6 +128,8 @@
 	else
 		vty_out(vty, "  rtp transcoder-range %u %u%s",
 			g_cfg->transcoder_ports.range_start, g_cfg->transcoder_ports.range_end, VTY_NEWLINE);
+	if (g_cfg->bts_force_ptime > 0)
+		vty_out(vty, "  rtp force-ptime %d%s", g_cfg->bts_force_ptime, VTY_NEWLINE);
 	vty_out(vty, "  transcoder-remote-base %u%s", g_cfg->transcoder_remote_base, VTY_NEWLINE);
 	vty_out(vty, "  osmux %s%s",
 		g_cfg->osmux == 1 ? "on" : "off", VTY_NEWLINE);
diff --git a/openbsc/tests/vty_test_runner.py b/openbsc/tests/vty_test_runner.py
index 6bbc606..db8294d 100644
--- a/openbsc/tests/vty_test_runner.py
+++ b/openbsc/tests/vty_test_runner.py
@@ -56,6 +56,27 @@
         self.vty = None
         osmoutil.end_proc(self.proc)
 
+class TestVTYMGCP(TestVTYBase):
+    def vty_command(self):
+        return ["./src/osmo-bsc_mgcp/osmo-bsc_mgcp", "-c",
+                "doc/examples/osmo-bsc_mgcp/mgcp.cfg"]
+
+    def vty_app(self):
+        return (4243, "./src/osmo-bsc_mgcp/osmo-bsc_mgcp", "OpenBSC MGCP", "mgcp")
+
+    def testForcePtime(self):
+	self.vty.enable()
+	res = self.vty.command("show running-config")
+	self.assert_(res.find('  rtp force-ptime 20\r') > 0)
+	self.assertEquals(res.find('  no rtp force-ptime\r'), -1)
+
+	self.vty.command("configure terminal")
+	self.vty.command("mgcp")
+	self.vty.command("no rtp force-ptime")
+	res = self.vty.command("show running-config")
+	self.assertEquals(res.find('  rtp force-ptime 20\r'), -1)
+	self.assertEquals(res.find('  no rtp force-ptime\r'), -1)
+
 
 class TestVTYGenericBSC(TestVTYBase):
 
@@ -656,6 +677,7 @@
     os.chdir(workdir)
     print "Running tests for specific VTY commands"
     suite = unittest.TestSuite()
+    suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestVTYMGCP))
     suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestVTYNITB))
     add_bsc_test(suite, workdir)
     add_nat_test(suite, workdir)
