diff --git a/modules/base/pymod/table.py b/modules/base/pymod/table.py
index aa8965d61ab7f6ccfcb43e5a9bc0f7ea699b1389..d1bd691a301113ac387eca86dd6e0ff848c602ab 100644
--- a/modules/base/pymod/table.py
+++ b/modules/base/pymod/table.py
@@ -1005,6 +1005,48 @@ Statistics for column %(col)s
             if precedence[split_expression[i]]==precedence[split_expression[i+2]]:
               raise ValueError('Cannot Evaluate '+' '.join(split_expression[i:i+3])+' since both operators have same precedence!')
 
+
+        #handle , operator
+        #replaces an expression like 'rnum=1,2,3' with '(rnum=1 or rnum=2 or rnum=3)'
+
+        temp_split_expression=list()
+        skips=0
+
+        for i in range(len(split_expression)):
+          if skips>0:
+            skips-=1
+            continue
+          if ',' in split_expression[i]:
+
+            if split_expression[max(0,i-1)] != '=' and split_expression[min(i+1,len(split_expression)-1)] != '=':
+              raise ValueError('Can evaluate \',\' sign only in combination with \'=\'')
+
+            single_operands=split_expression[i].split(',')
+
+            if split_expression[max(0,i-1)]=='=':
+              if i-2<0:
+                raise ValueError('Does it really make sense to start with an \'=\'')
+              main_operand=split_expression[i-2]
+              temp_split_expression.pop()
+              temp_split_expression.pop()
+              skips=0
+
+            else:
+              if i+2>len(split_expression)-1:
+                raise ValueError('Does it really make sense to end with an \'=\'')
+              main_operand=split_expression[i+2]
+              skips=2
+
+            temp_expression=list(['('])
+            temp_expression+=' or '.join(['%s = %s'% (a,b) for (a,b) in zip(len(single_operands)*[main_operand],single_operands)]).split()
+            temp_expression.append(')')
+            temp_split_expression+=temp_expression
+            continue
+
+          temp_split_expression.append(split_expression[i])
+
+        split_expression=temp_split_expression
+
         #handle ':' operator
         #replaces an expression like 'col_a=x:y' with '(col_a>=x and col_a<=y)'
         
@@ -1053,46 +1095,6 @@ Statistics for column %(col)s
   
         split_expression=temp_split_expression
 
-        #handle , operator
-        #replaces an expression like 'rnum=1,2,3' with '(rnum=1 or rnum=2 or rnum=3)'
-
-        temp_split_expression=list()
-
-        for i in range(len(split_expression)):
-          if skips>0:
-            skips-=1
-            continue
-          if ',' in split_expression[i]:
-
-            if split_expression[max(0,i-1)] != '=' and split_expression[min(i+1,len(split_expression)-1)] != '=':
-              raise ValueError('Can evaluate \',\' sign only in combination with \'=\'')
-
-            single_operands=split_expression[i].split(',')
-
-            if split_expression[max(0,i-1)]=='=':
-              if i-2<0:
-                raise ValueError('Does it really make sense to start with an \'=\'')
-              main_operand=split_expression[i-2]
-              temp_split_expression.pop()
-              temp_split_expression.pop()
-              skips=0
-
-            else:
-              if i+2>len(split_expression)-1:
-                raise ValueError('Does it really make sense to end with an \'=\'')
-              main_operand=split_expression[i+2]
-              skips=2
-
-            temp_expression=list(['('])
-            temp_expression+=' or '.join(['%s = %s'% (a,b) for (a,b) in zip(len(single_operands)*[main_operand],single_operands)]).split()
-            temp_expression.append(')')
-            temp_split_expression+=temp_expression
-            continue
-
-          temp_split_expression.append(split_expression[i])
-
-        split_expression=temp_split_expression
-
         return split_expression
 
       token=expression[actual_position]
diff --git a/modules/base/tests/test_table.py b/modules/base/tests/test_table.py
index fe97e693bfe8ef3b0264d09ee6277ad44c3be82b..b3c1921d95a70cd665314348080576ae067f7228 100644
--- a/modules/base/tests/test_table.py
+++ b/modules/base/tests/test_table.py
@@ -1765,11 +1765,13 @@ class TestTable(unittest.TestCase):
     query_two='a=2:9 and c'
     query_three='d=e,f,j and a!=4'
     query_four='(b=2.0:3.0 and c=False) or (b<1.0 and c)'
+    query_five='b=0.0:1.2,2.5:8.0'
 
     self.assertEqual([0,1,2,3], list(r[0] for r in tab.Select(query_one).rows))
     self.assertEqual([2,3], list(r[0] for r in tab.Select(query_two).rows))
     self.assertEqual([5,9], list(r[0] for r in tab.Select(query_three).rows))
     self.assertEqual([0,7], list(r[0] for r in tab.Select(query_four).rows))
+    self.assertEqual([0,1,2,3,8,9], list(r[0] for r in tab.Select(query_five).rows))
 
     
 if __name__ == "__main__":