diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CachedResultSetManager.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CachedResultSetManager.java
index f53923bc33cb31f66e96fdfe564dcf2cb8d2c0e3..19c67d340adc89df60d9a92e9b0c890bad20c8c3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CachedResultSetManager.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CachedResultSetManager.java
@@ -259,8 +259,17 @@ public final class CachedResultSetManager<K> implements IResultSetManager<K>, Se
                 {
                     Comparable v1 = sortField.tryGetComparableValue(o1);
                     Comparable v2 = sortField.tryGetComparableValue(o2);
-                    // NullComparator wrapper is dealing with nulls (see below)
-                    return v1.compareTo(v2);
+                    // treat null as minimal value
+                    if (v1 == null)
+                    {
+                        return -1;
+                    } else if (v2 == null)
+                    {
+                        return 1;
+                    } else
+                    {
+                        return v1.compareTo(v2);
+                    }
                 }
 
             };
@@ -324,7 +333,7 @@ public final class CachedResultSetManager<K> implements IResultSetManager<K>, Se
         assert resultConfig != null : "Unspecified result configuration";
         assert dataProvider != null : "Unspecified data retriever";
         Set<String> ids = gatherAllColumnIDs(resultConfig);
-        debug("All columns needed:"+ids);
+        debug("All columns needed:" + ids);
         ResultSetFetchConfig<K> cacheConfig = resultConfig.getCacheConfig();
         ResultSetFetchMode mode = cacheConfig.getMode();
         debug("getResultSet(cache config = " + cacheConfig + ")");