diff --git a/APMrover2/system.pde b/APMrover2/system.pde
index 328fccfa89e928dfad6338ea10dbdf7316769c1f..42aee793236a8809da4b2bfd842b64dcf21e0d0e 100644
--- a/APMrover2/system.pde
+++ b/APMrover2/system.pde
@@ -135,15 +135,10 @@ static void init_ardupilot()
     check_usb_mux();
 
     // we have a 2nd serial port for telemetry
-    hal.uartC->begin(map_baudrate(g.serial1_baud, SERIAL1_BAUD), 128, 128);
-	gcs[1].init(hal.uartC);
+    gcs[1].setup_uart(hal.uartC, map_baudrate(g.serial1_baud, SERIAL1_BAUD), 128, 128);
 
 #if MAVLINK_COMM_NUM_BUFFERS > 2
-    // we may have a 3rd serial port for telemetry
-    if (hal.uartD != NULL) {
-        hal.uartD->begin(map_baudrate(g.serial2_baud, SERIAL2_BAUD), 128, 128);
-        gcs[2].init(hal.uartD);
-    }
+    gcs[2].setup_uart(hal.uartD, map_baudrate(g.serial2_baud, SERIAL2_BAUD), 128, 128);
 #endif
 
 	mavlink_system.sysid = g.sysid_this_mav;