diff --git a/src/Main/fg_io.cxx b/src/Main/fg_io.cxx
index 109aaccfb..9c3afb745 100644
--- a/src/Main/fg_io.cxx
+++ b/src/Main/fg_io.cxx
@@ -193,9 +193,11 @@ static FGProtocol *parse_port_config( const string& config )
 // step through the port config streams (from fgOPTIONS) and setup
 // serial port channels for each
 void fgIOInit() {
+    // FG_LOG( FG_IO, FG_INFO, "I/O Channel initialization, " << 
+    //         globals->get_channel_options_list()->size() << " requests." );
+
     FGProtocol *p;
-    string_list channel_options_list = 
-	globals->get_channel_options_list();
+    string_list *channel_options_list = globals->get_channel_options_list();
 
     // we could almost do this in a single step except pushing a valid
     // port onto the port list copies the structure and destroys the
@@ -203,8 +205,8 @@ void fgIOInit() {
 
     // parse the configuration strings and store the results in the
     // appropriate FGIOChannel structures
-    for ( int i = 0; i < (int)channel_options_list.size(); ++i ) {
-	p = parse_port_config( channel_options_list[i] );
+    for ( int i = 0; i < (int)channel_options_list->size(); ++i ) {
+	p = parse_port_config( (*channel_options_list)[i] );
 	if ( p != NULL ) {
 	    p->open();
 	    global_io_list.push_back( p );
diff --git a/src/Main/globals.hxx b/src/Main/globals.hxx
index 72d3433ef..fc1c52184 100644
--- a/src/Main/globals.hxx
+++ b/src/Main/globals.hxx
@@ -86,7 +86,7 @@ private:
     SGPropertyNode *initial_state;
 
     // list of serial port-like configurations
-    string_list channel_options_list;
+    string_list *channel_options_list;
 
 public:
 
@@ -132,8 +132,11 @@ public:
     inline SGPropertyNode *get_props () { return props; }
     inline void set_props( SGPropertyNode *n ) { props = n; }
 
-    inline string_list get_channel_options_list () {
-      return channel_options_list;
+    inline string_list *get_channel_options_list () {
+	return channel_options_list;
+    }
+    inline void set_channel_options_list( string_list *l ) {
+	channel_options_list = l;
     }
 
 
diff --git a/src/Main/main.cxx b/src/Main/main.cxx
index 0cddd59dc..34edfd7fb 100644
--- a/src/Main/main.cxx
+++ b/src/Main/main.cxx
@@ -480,7 +480,6 @@ void fgRenderFrame( void ) {
 #endif
 
 	thesky->modify_vis( cur_fdm_state->get_Altitude() * FEET_TO_METER,
-				
 			    ( global_multi_loop * 
 			      fgGetInt("/sim/speed-up") ) /
 			    (double)fgGetInt("/sim/model-hz") );
@@ -682,8 +681,10 @@ void fgRenderFrame( void ) {
 	// position tile nodes and update range selectors
 	global_tile_mgr.prep_ssg_nodes();
 
-	// draw the sky backdrop
-	thesky->preDraw();
+	if ( fgGetBool("/sim/rendering/skyblend") ) {
+	    // draw the sky backdrop
+	    thesky->preDraw();
+	}
 
 	// draw the ssg scene
 	glEnable( GL_DEPTH_TEST );
@@ -697,8 +698,10 @@ void fgRenderFrame( void ) {
 
 	ssgCullAndDraw( lighting );
 
-	// draw the sky cloud layers
-	thesky->postDraw( cur_fdm_state->get_Altitude() * FEET_TO_METER );
+	if ( fgGetBool("/sim/rendering/skyblend") ) {
+	    // draw the sky cloud layers
+	    thesky->postDraw( cur_fdm_state->get_Altitude() * FEET_TO_METER );
+	}
 
 	// display HUD && Panel
 	glDisable( GL_FOG );
@@ -769,12 +772,12 @@ void fgUpdateTimeDepCalcs() {
 	}
 
 	// cout << "multi_loop = " << multi_loop << endl;
-	for ( i = 0; i < multi_loop; ++i ) {
+	for ( i = 0; i < multi_loop * fgGetInt("/sim/speed-up"); ++i ) {
 	    // run Autopilot system
 	    current_autopilot->run();
 
-	    // update autopiot
-	    cur_fdm_state->update( 1 * fgGetInt("/sim/speed-up") );
+	    // update autopilot
+	    cur_fdm_state->update( 1 );
 	}
 	FGSteam::update( multi_loop * fgGetInt("/sim/speed-up") );
     } else {
@@ -1408,6 +1411,9 @@ int main( int argc, char **argv ) {
     FGViewerLookAt *chase = new FGViewerLookAt;
     globals->get_viewmgr()->add_view( chase );
 
+    string_list *col = new string_list;
+    globals->set_channel_options_list( col );
+
     // set current view to 0 (first) which is our main pilot view
     globals->set_current_view( globals->get_viewmgr()->get_view( 0 ) );
 
diff --git a/src/Main/options.cxx b/src/Main/options.cxx
index 737cbf776..3b442d959 100644
--- a/src/Main/options.cxx
+++ b/src/Main/options.cxx
@@ -441,7 +441,7 @@ static bool
 parse_channel( const string& type, const string& channel_str ) {
     // cout << "Channel string = " << channel_str << endl;
 
-    globals->get_channel_options_list().push_back( type + "," + channel_str );
+    globals->get_channel_options_list()->push_back( type + "," + channel_str );
 
     return true;
 }