diff --git a/modules/gui/pymod/scene/inspector_widget.py b/modules/gui/pymod/scene/inspector_widget.py
index 6535203cecaa8c8e718621ec09b088d59c2f700e..057a9c6b8d8efed0eabccb2fb2302c6ddcb4b989 100644
--- a/modules/gui/pymod/scene/inspector_widget.py
+++ b/modules/gui/pymod/scene/inspector_widget.py
@@ -28,8 +28,7 @@ from toolbar_options_widget import ToolBarOptionsWidget
 from render_options_widget import RenderOptionsWidget
 from color_options_widget import ColorOptionsWidget
 from ost.gui.scene.scene_observer_impl import SceneObserverImpl
-from preset_widget import PresetWidget
-from map_level_widget import MapLevelWidget
+from map_level_widget import AdditionalSettingsWidget
 
 class InspectorWidget(ToolBarOptionsWidget):
   ICONS_PATH = os.path.join(ost.GetSharedDataPath(), "scene", "icons/")
@@ -39,8 +38,7 @@ class InspectorWidget(ToolBarOptionsWidget):
     options = [
                 [InspectorWidget.ICONS_PATH+"render_icon.png",RenderOptionsWidget(self),None], 
                 [InspectorWidget.ICONS_PATH+"color_icon.png",ColorOptionsWidget(self),None],
-                [InspectorWidget.ICONS_PATH+"preset_icon.png", PresetWidget(self),None],
-                [InspectorWidget.ICONS_PATH+"preset_icon.png", MapLevelWidget(self),"Map Level Options"],
+                [InspectorWidget.ICONS_PATH+"preset_icon.png", AdditionalSettingsWidget(self),"Additional Node Settings"],
                 [InspectorWidget.ICONS_PATH+"tool_icon.png",app.tool_options_win.qobject,"Tool Options"]
               ]
     for o in options:
diff --git a/modules/gui/pymod/scene/map_level_widget.py b/modules/gui/pymod/scene/map_level_widget.py
index 51584c73a9b187a6b83f7012f6227f607b45ec13..d86e91f072bdb4ad3f06727af53589c016ffedfa 100644
--- a/modules/gui/pymod/scene/map_level_widget.py
+++ b/modules/gui/pymod/scene/map_level_widget.py
@@ -28,6 +28,48 @@ except ImportError:
   pass
 from PyQt4 import QtCore, QtGui
 
+from preset_widget import PresetWidget
+
+class AdditionalSettingsWidget(QtGui.QWidget):
+  def __init__(self, parent=None):
+    QtGui.QWidget.__init__(self, parent)
+    self.stack = QtGui.QStackedWidget(self);
+    self.map_widget_ = MapLevelWidget(self)
+    self.setContentsMargins(0,0,0,0)
+    self.preset_widget_ = PresetWidget(self)
+    self.stack.addWidget(self.map_widget_);
+    self.stack.addWidget(self.preset_widget_);
+    self.stack.setContentsMargins(0,0,0,0)
+    self.setMinimumSize(self.preset_widget_.minimumSize())
+    
+  def Update(self):
+    self.setEnabled(True)
+    scene_selection = gui.SceneSelection.Instance()
+    all_img = True
+    all_entity = True
+    for i in range(0,scene_selection.GetActiveNodeCount()):
+      node = scene_selection.GetActiveNode(i)
+      if not (isinstance(node, gfx.Entity) or isinstance(node, gfx.Surface)):
+        all_entity = False
+      if (not _img_present) or (not isinstance(node, gfx.MapIso)):
+        all_img = False
+    if all_img:
+      self.map_widget_.Update()
+      self.setMinimumSize(self.map_widget_.minimumSize())
+      self.resize(self.map_widget_.minimumSize())
+      self.stack.resize(self.map_widget_.minimumSize())
+      self.stack.setMinimumSize(self.map_widget_.minimumSize())
+      self.stack.setCurrentWidget(self.map_widget_)
+    elif all_entity:
+      self.preset_widget_.Update()
+      self.setMinimumSize(self.preset_widget_.minimumSize())
+      self.resize(self.preset_widget_.minimumSize())
+      self.stack.resize(self.preset_widget_.minimumSize())
+      self.stack.setMinimumSize(self.preset_widget_.minimumSize())
+      self.stack.setCurrentWidget(self.preset_widget_)
+    else:
+      self.setEnabled(False)
+    
 #Map Level Widget
 class MapLevelWidget(QtGui.QWidget):
   def __init__(self, parent=None):
@@ -56,7 +98,7 @@ class MapLevelWidget(QtGui.QWidget):
     QtCore.QObject.connect(self.level_preview_, QtCore.SIGNAL("levelModified"), self.ModifySpinBox)
     QtCore.QObject.connect(self.level_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateLevel)
 
-    self.setMinimumSize(250,300)
+    self.setMinimumSize(250,200)
         
   def Update(self):
     scene_selection = gui.SceneSelection.Instance()
@@ -93,7 +135,7 @@ class LevelPreview(QtGui.QWidget):
     
     #Defaults
     self.border_offset_ = 3
-    self.preview_height_ = 100
+    self.preview_height_ = 150
     QtGui.QWidget.__init__(self, parent)
     
     #Ui
diff --git a/modules/gui/pymod/scene/preset_widget.py b/modules/gui/pymod/scene/preset_widget.py
index d581a38ea137c80a16baaf07584f8ed81f25986d..cb67283e839db899794a3ced0ba1056080aaea1f 100644
--- a/modules/gui/pymod/scene/preset_widget.py
+++ b/modules/gui/pymod/scene/preset_widget.py
@@ -67,7 +67,7 @@ class PresetWidget(QtGui.QWidget):
   
     QtCore.QObject.connect(self.list_view_, QtCore.SIGNAL("doubleClicked(const QModelIndex)"), self.Load)
     
-    self.setMinimumSize(250,150)
+    self.setMinimumSize(250,200)
     
   def CreateImmutableContextMenu(self):  
     self.immucontext_menu_ = QtGui.QMenu("Context menu", self)
diff --git a/modules/gui/pymod/scene/toolbar_options_widget.py b/modules/gui/pymod/scene/toolbar_options_widget.py
index 006c09b160ba710c83d15679706c1ff20aa4cbf2..d331b62b4cd15d5b5ddfc22f83c2b5fbb13951e1 100644
--- a/modules/gui/pymod/scene/toolbar_options_widget.py
+++ b/modules/gui/pymod/scene/toolbar_options_widget.py
@@ -126,13 +126,13 @@ class ToolBarOptionsWidget(QtGui.QWidget):
        self.current_action_ = action
     widget = action.data().toPyObject()[1]
     self.stackedWidget.setCurrentWidget(widget)
-    self.DoSomething(widget)
     if hasattr(widget, "Update"): 
       widget.Update()
     if(self.current_action_ == action):
       self.current_action_.setChecked(True)
     else:
       self.current_action_=action
+    self.DoSomething(widget)
   #Private Methods
   def __GetCurrentWidget(self):
       return self.stackedWidget.currentWidget();