diff --git a/src/main/java/org/olat/core/gui/components/table/DefaultColumnDescriptor.java b/src/main/java/org/olat/core/gui/components/table/DefaultColumnDescriptor.java
index 50cebd9ccb250fecf69694187b1acd05b7f02743..6bf90697c9026ecaf31952abe2e61feaa9f202a0 100644
--- a/src/main/java/org/olat/core/gui/components/table/DefaultColumnDescriptor.java
+++ b/src/main/java/org/olat/core/gui/components/table/DefaultColumnDescriptor.java
@@ -179,12 +179,14 @@ public class DefaultColumnDescriptor implements ColumnDescriptor {
 		if(a instanceof Date && b instanceof Date) {
 			return compareDateAndTimestamps((Date)a, (Date)b);
 		}
-		if (a instanceof Comparable && b instanceof Comparable) {
+		if (a instanceof Boolean && b instanceof Boolean) {
+			// faster than string compare, boolean are comparable
+			return compareBooleans((Boolean)a, (Boolean)b);
+		}
+		if (a instanceof Comparable && a.getClass().equals(b.getClass())) {
+			//compare the same things
 			return ((Comparable)a).compareTo((Comparable)b);
 		}
-		/*if (a instanceof Boolean && b instanceof Boolean) { // faster than string compare, boolean are comparable
-			return compareBooleans((Boolean)a, (Boolean)b);
-		}*/
 		return a.toString().compareTo(b.toString());
 	}