diff --git a/modules/gui/pymod/scene/preset_editor_widget.py b/modules/gui/pymod/scene/preset_editor_widget.py
index 65ff8947c7c9b4d2c3cc1c258b17696005b85467..457cda457fa8a09f1ffd54cf13bc03dc79ceeb20 100644
--- a/modules/gui/pymod/scene/preset_editor_widget.py
+++ b/modules/gui/pymod/scene/preset_editor_widget.py
@@ -30,7 +30,7 @@ from gradient_editor_widget import GradientPreview
 from gradient_editor_widget import GradientEdit
 from preset_editor_list_model import PresetEditorListModel
 from immutable_gradient_info_handler import ImmutableGradientInfoHandler
-from query_editor import QueryEditor
+from query_editor import QueryEditorWidget
 from ost.mol import Prop
 from ost.gfx import ByElementColorOp
 from ost.gfx import ByChainColorOp
@@ -183,7 +183,7 @@ class PresetEditor(QtGui.QDialog):
 class UniformColorOpWidget(QtGui.QDialog):
   def __init__(self, parent=None):
     QtGui.QDialog.__init__(self, parent)
-    self.query_editor_ = QueryEditor(self)
+    self.query_editor_ = QueryEditorWidget(self)
 
     detail_label = QtGui.QLabel("Parts")
     self.detail_selection_cb_ = QtGui.QComboBox()
@@ -254,7 +254,7 @@ class GradientLevelColorOpWidget(QtGui.QDialog):
   def __init__(self, parent=None):
     QtGui.QDialog.__init__(self, parent)
     
-    self.query_editor_ = QueryEditor(self)
+    self.query_editor_ = QueryEditorWidget(self)
     
     detail_label = QtGui.QLabel("Parts")
     self.detail_selection_cb_ = QtGui.QComboBox()
@@ -422,7 +422,7 @@ class GradientLevelColorOpWidget(QtGui.QDialog):
 class ByElementColorOpWidget(QtGui.QDialog):
   def __init__(self, parent=None):
     QtGui.QDialog.__init__(self, parent)
-    self.query_editor_ = QueryEditor(self)
+    self.query_editor_ = QueryEditorWidget(self)
 
     detail_label = QtGui.QLabel("Parts")
     self.detail_selection_cb_ = QtGui.QComboBox()
@@ -478,7 +478,7 @@ class ByElementColorOpWidget(QtGui.QDialog):
 class ByChainColorOpWidget(QtGui.QDialog):
   def __init__(self, parent=None):
     QtGui.QDialog.__init__(self, parent)
-    self.query_editor_ = QueryEditor(self)
+    self.query_editor_ = QueryEditorWidget(self)
 
     detail_label = QtGui.QLabel("Parts")
     self.detail_selection_cb_ = QtGui.QComboBox()
@@ -534,7 +534,7 @@ class ByChainColorOpWidget(QtGui.QDialog):
 class RenderOpWidget(QtGui.QDialog):
   def __init__(self, parent=None):
     QtGui.QDialog.__init__(self, parent)
-    self.query_editor_ = QueryEditor(self)
+    self.query_editor_ = QueryEditorWidget(self)
   
     self.keep_ = QtGui.QCheckBox("Keep")
     self.keep_.setChecked(False)
@@ -609,7 +609,7 @@ class RenderOpWidget(QtGui.QDialog):
 class VisibilityOpWidget(QtGui.QDialog):
   def __init__(self, parent=None):
     QtGui.QDialog.__init__(self, parent)
-    self.query_editor_ = QueryEditor(self)
+    self.query_editor_ = QueryEditorWidget(self)
   
     self.visible_ = QtGui.QCheckBox("Visible")
     self.visible_.setChecked(True)
@@ -647,4 +647,4 @@ class VisibilityOpWidget(QtGui.QDialog):
     self.accept()
     
   def Cancel(self):
-    self.reject()
\ No newline at end of file
+    self.reject()
diff --git a/modules/gui/pymod/scene/query_editor.py b/modules/gui/pymod/scene/query_editor.py
index 7bd05a89d3dc32c677460b5ba05fbe8572952a8b..07b433a276f52c8f56da79bef72c85f7b02b5758 100644
--- a/modules/gui/pymod/scene/query_editor.py
+++ b/modules/gui/pymod/scene/query_editor.py
@@ -1,13 +1,17 @@
 from ost import mol
 from PyQt4 import QtCore, QtGui
 
-class QueryEditor(QtGui.QWidget):
+class QueryEditorWidget(QtGui.QWidget):
    
   def __init__(self, parent=None): 
     QtGui.QWidget.__init__(self, parent)
     self.selection_edit_ = QtGui.QLineEdit()
-    selection_label = QtGui.QLabel("Selection")    
-
+    selection_label = QtGui.QLabel("Selection",self)    
+    self.status_=QtGui.QLabel("",self);
+    self.status_.setWordWrap(True)
+    self.status_.setMargin(0)
+    self.status_.setHidden(True)
+    
     self.checkboxes_ = dict()
     for k,v in mol.QueryFlag.__dict__["values"].iteritems():
       checkbox = QtGui.QCheckBox(str(v),self)
@@ -24,11 +28,15 @@ class QueryEditor(QtGui.QWidget):
     grid.setContentsMargins(0,5,0,0)
     grid.addWidget(selection_label,0,0,1,1)
     grid.addWidget(self.selection_edit_,0,1,1,1)
-    grid.addWidget(flag_label,1,0,1,1)
-    grid.addLayout(v_checkbox_layout,1,1,1,1)
-    grid.setRowStretch(1, 1)
+    grid.setRowMinimumHeight(1,0)
+    grid.addWidget(self.status_,1,0,1,2)
+    grid.addWidget(flag_label,2,0,1,1)
+    grid.addLayout(v_checkbox_layout,2,1,1,1)
+    grid.setRowStretch(2, 1)
     #group_box = QtGui.QGroupBox("Selection",self)
     #group_box.setLayout(h_layout)
+        
+    self.connect(self.selection_edit_,QtCore.SIGNAL("textChanged(const QString& )"),self.UpdateMessage)
     
   def GetQueryFlags(self):
     flag = 0
@@ -51,4 +59,15 @@ class QueryEditor(QtGui.QWidget):
         k.setChecked(False)
   
   def SetQuery(self,query):
-    self.selection_edit_.setText(query)
\ No newline at end of file
+    self.selection_edit_.setText(query)
+    
+  def UpdateMessage(self):
+    q=self.GetQuery()
+    if q.IsValid():
+      self.status_.setText("")
+      self.status_.setHidden(True)
+      
+    else:
+      d=q.GetErrorDescription()
+      self.status_.setText("<font color='red'>%s</font>"%d.msg)
+      self.status_.setVisible(True)
\ No newline at end of file