diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/framework/EntityPropertyColDef.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/framework/EntityPropertyColDef.java
index 0bb141aedb6b8fc1b0a9e5d073539dd7671717af..3c4a1c8a8cc0b76392d015e4571b3efff42fa63d 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/framework/EntityPropertyColDef.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/framework/EntityPropertyColDef.java
@@ -106,6 +106,22 @@ public class EntityPropertyColDef<T extends IEntityPropertiesHolder> extends
         return null;
     }
 
+    @Override
+    public Comparable<?> getComparableValue(T rowModel)
+    {
+        String valueAsString = tryGetValue(rowModel);
+        DataTypeCode dataType = propertyType.getDataType().getCode();
+        switch (dataType)
+        {
+            case INTEGER:
+                return valueAsString == null ? new Integer(Integer.MIN_VALUE) : new Integer(valueAsString);
+            case REAL:
+                return valueAsString == null ? new Double(-Double.MAX_VALUE) : new Double(valueAsString);
+            default:
+                return super.getComparableValue(rowModel);
+        }
+    }
+
     public IEntityProperty tryGetProperty(T entity)
     {
         for (IEntityProperty prop : getProperties(entity))
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/util/FilterUtils.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/util/FilterUtils.java
index 45d5f36fc55545d2d84d6b338cd92f1f2f6ce3bd..32f3742a80b967bb309e78481483c94c6ba13da0 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/util/FilterUtils.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/util/FilterUtils.java
@@ -55,14 +55,14 @@ public class FilterUtils
             this.row = row;
         }
 
-        public String get(String columnID)
+        public Object get(String columnID)
         {
             IColumnDefinition<T> columnDefinition = map.get(columnID);
             if (columnDefinition == null)
             {
                 throw new IllegalArgumentException("Undefined column: " + columnID);
             }
-            return columnDefinition.getValue(row);
+            return columnDefinition.getComparableValue(row);
         }
     }