diff --git a/modules/gfx/src/entity.cc b/modules/gfx/src/entity.cc
index 0317fd8ea21afaa9b999fd7e95537d8dc03791f2..29927009dd77bfdeca7b409b21e075cc809c3b1a 100644
--- a/modules/gfx/src/entity.cc
+++ b/modules/gfx/src/entity.cc
@@ -704,7 +704,23 @@ mol::EntityView Entity::GetRenderView(RenderMode::Type mode)
 
 void Entity::SetRenderMode(RenderMode::Type mode)
 {
+  EntityRenderer* rend = this->GetOrCreateRenderer(mode);
+  if(!rend) return;
+
+  // substract view from all renderers
+  for (RendererMap::iterator i=renderer_.begin(),
+       e=renderer_.end(); i!=e; ++i) {
+     impl::EntityRenderer* renderer=i->second;
+     renderer->ClearViews();
+     if (renderer==rend) {
+       renderer->AddView(qv_.GetEntityView());
+     }
+     renderer->UpdateViews();
+  }
+  this->ReapplyColorOps(); // done in rebuild?
+  this->FlagRebuild();  
   GfxObj::SetRenderMode(mode);
+  Scene::Instance().RenderModeChanged(GetName());  
 }
 
 void Entity::SetVisible(const mol::EntityView& view, bool visible){
diff --git a/modules/gui/pymod/scene/color_options_widget.py b/modules/gui/pymod/scene/color_options_widget.py
index 4bb7012c56a981461e7148d38d4f651657a55f2b..55b26a6a4c980f4140211957f8edd5c901b6afae 100644
--- a/modules/gui/pymod/scene/color_options_widget.py
+++ b/modules/gui/pymod/scene/color_options_widget.py
@@ -55,7 +55,7 @@ class ColorOptionsWidget(ComboOptionsWidget):
 
     self.setMinimumSize(250,200)
     
-  def DoSomething(self, item):
+  def OnComboChange(self, item):
     scene_selection = gui.SceneSelection.Instance()
     if hasattr(item,"PrepareColoring"):
       item.PrepareColoring()
diff --git a/modules/gui/pymod/scene/combo_options_widget.py b/modules/gui/pymod/scene/combo_options_widget.py
index 1dff39c62012e4b6bfee6acc25505d32bf9ed570..8961c04a263db4877ad2bb5385ce0e6283cafc1e 100644
--- a/modules/gui/pymod/scene/combo_options_widget.py
+++ b/modules/gui/pymod/scene/combo_options_widget.py
@@ -45,7 +45,8 @@ class ComboOptionsWidget(QtGui.QWidget):
 
     self.__UpdateView(self.combo_box_.currentIndex())
     
-    QtCore.QObject.connect(self.combo_box_, QtCore.SIGNAL("activated(int)"), self.__UpdateView)
+    QtCore.QObject.connect(self.combo_box_, QtCore.SIGNAL("activated(int)"), 
+                           self.__UpdateView)
     
     self.setEnabled(False)
        
@@ -84,23 +85,31 @@ class ComboOptionsWidget(QtGui.QWidget):
       self.stacked_widget_.removeWidget(self.combo_box_.itemData(index).toPyObject()[1])
       self.combo_box_.removeItem(index)
   
-  def DoSomething(self, item):
+  def OnComboChange(self, item):
     """This abstract method is called whenever the View is updated.
     
      This abstract method must be implemented by all subclasses. 
      It can be used to do something ;-) whenever the combobox changes its value.
     """
-    raise NotImplementedError, "Subclasses must define DoSomething()"
+    raise NotImplementedError, "Subclasses must define OnComboChange()"
+
+  def OnActivate(self, item):
+    return self.OnComboChange(self, item)
     
   def ChangeSelectedItem(self, ident):
-    """Change Current Selected Item.
+    """
+    Change Current Selected Item.
     
-     Shows the widget which corresponds to the ident in the show area. If ident is not valid, nothing happens.
+    Shows the widget which corresponds to the ident in the show area. If ident 
+    is not valid, nothing happens.
     """
     i = self.__GetIndex(ident)
     if(i>=0) and self.combo_box_.currentIndex() != i:
       self.combo_box_.setCurrentIndex(i)
-      self.__UpdateView(None)
+      if (self.combo_box_.count() > 0):
+        pair = self.__GetCurrentPair()
+        self.stacked_widget_.setCurrentWidget(pair[1])
+        self.OnActivate(pair[1])
   
   def GetCurrentWidget(self):
     if(self.combo_box_.currentIndex() >= 0):
@@ -124,7 +133,7 @@ class ComboOptionsWidget(QtGui.QWidget):
     if (self.combo_box_.count() > 0):
       pair = self.__GetCurrentPair()
       self.stacked_widget_.setCurrentWidget(pair[1])
-      self.DoSomething(pair[1])
+      self.OnComboChange(pair[1])
 
   def __GetIndex(self, ident):
     for i in range(self.combo_box_.count()):
diff --git a/modules/gui/pymod/scene/inspector_widget.py b/modules/gui/pymod/scene/inspector_widget.py
index 0d55de190194724dfc7a2dc7637736c4051e5cb7..4a976841ba8e20939418df3cb08b384e668f1369 100644
--- a/modules/gui/pymod/scene/inspector_widget.py
+++ b/modules/gui/pymod/scene/inspector_widget.py
@@ -53,7 +53,7 @@ class InspectorWidget(ToolBarOptionsWidget):
     
     self.setMinimumSize(250,215)
   #ToolBarOptionsWidget Method
-  def DoSomething(self, item):
+  def OnComboChange(self, item):
     self.DoResize()
         
   #Observer Methods    
@@ -84,14 +84,17 @@ class InspectorDialog(QtGui.QDialog):
     self.setLayout(self.layout)
     self.mywidget_ = InspectorWidget(self)
     self.layout.addWidget(self.mywidget_)
-    size_pol = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding)
+    size_pol = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
+                                 QtGui.QSizePolicy.Expanding)
     self.setSizePolicy(size_pol)
     self.DoResize()
     
   def DoResize(self):
     if(hasattr(self, "mywidget_")):
-      self.setMinimumSize(self.mywidget_.minimumWidth(),self.mywidget_.minimumHeight())
-      self.resize(self.mywidget_.minimumWidth(),self.mywidget_.minimumHeight())
+      self.setMinimumSize(self.mywidget_.minimumWidth(),
+                          self.mywidget_.minimumHeight())
+      self.resize(self.mywidget_.minimumWidth(),
+                  self.mywidget_.minimumHeight())
     
   def ToggleHide(self,checked):
     self.setHidden(not self.isHidden())
diff --git a/modules/gui/pymod/scene/render_options_widget.py b/modules/gui/pymod/scene/render_options_widget.py
index 124c32c66d3472083465dd99d2811b645ed31861..989f1c91782ab6fc09e609e79d5c5582498c5a71 100644
--- a/modules/gui/pymod/scene/render_options_widget.py
+++ b/modules/gui/pymod/scene/render_options_widget.py
@@ -77,16 +77,16 @@ class RenderOptionsWidget(ComboOptionsWidget):
 
     self._in_view_method = False
     self.setMinimumSize(250,200)
-    
-  def DoSomething(self, item):
+  def OnActivate(self, item):
+    pass
+  def OnComboChange(self, item):
     scene_selection = gui.SceneSelection.Instance()
     for i in range(0,scene_selection.GetActiveNodeCount()):
       node = scene_selection.GetActiveNode(i)
       if isinstance(node, gfx.Entity) or (_img_present and isinstance(node, gfx.MapIso)):
         render_mode = item.GetRenderMode()
         if render_mode is not None:
-          node.SetRenderMode(render_mode)     
-    
+          node.SetRenderMode(render_mode)
     if(scene_selection.GetActiveViewCount() > 0):
       entity = scene_selection.GetViewEntity()
       view = scene_selection.GetViewUnion()        
diff --git a/modules/gui/pymod/scene/toolbar_options_widget.py b/modules/gui/pymod/scene/toolbar_options_widget.py
index bedaf8482db1fec8c1972a0420e95a36d1149376..fc4720493f026e2f7f64c91c17d6542f710d1ffc 100644
--- a/modules/gui/pymod/scene/toolbar_options_widget.py
+++ b/modules/gui/pymod/scene/toolbar_options_widget.py
@@ -95,13 +95,13 @@ class ToolBarOptionsWidget(QtGui.QWidget):
       return True
     return False
   
-  def DoSomething(self, item):
+  def OnComboChange(self, item):
     """This abstract method is called whenever the View is updated.
     
      This abstract method must be implemented by all subclasses. 
      It can be used to do something ;-) whenever the combobox changes its value.
     """
-    raise NotImplementedError, "Subclasses must define DoSomething()"
+    raise NotImplementedError, "Subclasses must define OnComboChange()"
   
   def DoResize(self):
     item = self.__GetCurrentWidget()
@@ -132,7 +132,7 @@ class ToolBarOptionsWidget(QtGui.QWidget):
       self.current_action_.setChecked(True)
     else:
       self.current_action_=action
-    self.DoSomething(widget)
+    self.OnComboChange(widget)
   #Private Methods
   def __GetCurrentWidget(self):
       return self.stackedWidget.currentWidget();