diff --git a/modules/gfx/src/scene.cc b/modules/gfx/src/scene.cc
index 8b991110743b0235d45abc68f9182344a31033cd..7b7ddce245d1d46502519157a1c65608e1fd4c35 100644
--- a/modules/gfx/src/scene.cc
+++ b/modules/gfx/src/scene.cc
@@ -355,7 +355,8 @@ void Scene::InitGL(bool full)
   glClearDepth(1.0);
 
   // background
-  SetBackground(background_);
+  glClearColor(background_.Red(),background_.Green(),background_.Blue(),background_.Alpha());
+  fog_color_=background_;
 
   // polygon orientation setting
   glFrontFace(GL_CCW);
@@ -459,6 +460,8 @@ void Scene::InitGL(bool full)
 
   LOG_DEBUG("Scene: gl init done");
   gl_init_=true;
+  
+  if(!def_shading_mode_.empty()) SetShadingMode(def_shading_mode_);
 }
 
 void Scene::RequestRedraw()