diff --git a/src/Main/fg_io.cxx b/src/Main/fg_io.cxx
index 36a95295c..e48061401 100644
--- a/src/Main/fg_io.cxx
+++ b/src/Main/fg_io.cxx
@@ -48,6 +48,8 @@
 #include <Network/protocol.hxx>
 #include <Network/garmin.hxx>
 #include <Network/nmea.hxx>
+#include <Network/pve.hxx>
+#include <Network/rul.hxx>
 
 // #include <Time/fg_time.hxx>
 #include <Time/timestamp.hxx>
@@ -79,12 +81,18 @@ static FGProtocol *parse_port_config( const string& config )
     FG_LOG( FG_IO, FG_INFO, "  protocol = " << protocol );
 
     FGProtocol *io;
-    if ( protocol == "nmea" ) {
-	FGNMEA *nmea = new FGNMEA;
-	io = nmea;
-    } else if ( protocol == "garmin" ) {
+    if ( protocol == "garmin" ) {
 	FGGarmin *garmin = new FGGarmin;
 	io = garmin;
+    } else if ( protocol == "nmea" ) {
+	FGNMEA *nmea = new FGNMEA;
+	io = nmea;
+    } else if ( protocol == "pve" ) {
+	FGPVE *pve = new FGPVE;
+	io = pve;
+    } else if ( protocol == "rul" ) {
+	FGRUL *rul = new FGRUL;
+	io = rul;
     } else {
 	return NULL;
     }
diff --git a/src/Main/options.cxx b/src/Main/options.cxx
index 7b783e783..d8f641028 100644
--- a/src/Main/options.cxx
+++ b/src/Main/options.cxx
@@ -752,6 +752,10 @@ int fgOPTIONS::parse_option( const string& arg ) {
 	parse_channel( "garmin", arg.substr(9) );
     } else if ( arg.find( "--nmea=" ) != string::npos ) {
 	parse_channel( "nmea", arg.substr(7) );
+    } else if ( arg.find( "--pve=" ) != string::npos ) {
+	parse_channel( "pve", arg.substr(6) );
+    } else if ( arg.find( "--rul=" ) != string::npos ) {
+	parse_channel( "rul", arg.substr(6) );
 #ifdef FG_NETWORK_OLK
     } else if ( arg == "--net-hud" ) {
 	net_hud_display = 1;