diff --git a/src/main/java/org/olat/repository/manager/RepositoryEntryMyCourseQueries.java b/src/main/java/org/olat/repository/manager/RepositoryEntryMyCourseQueries.java
index 7be7a27b10dbc7547605bfc2bebbcec7897a1540..89d25a9f95518a29ccb9711afaec6feb5148047a 100644
--- a/src/main/java/org/olat/repository/manager/RepositoryEntryMyCourseQueries.java
+++ b/src/main/java/org/olat/repository/manager/RepositoryEntryMyCourseQueries.java
@@ -506,7 +506,6 @@ public class RepositoryEntryMyCourseQueries {
 					} else {
 						sb.append(" order by lower(v.displayname) desc, lifecycle.validFrom desc nulls last, lower(v.externalRef) desc nulls last");
 					}
-					appendAsc(sb, asc);
 					break;
 				case lifecycle:
 					sb.append(" order by lifecycle.validFrom ");
@@ -576,8 +575,11 @@ public class RepositoryEntryMyCourseQueries {
 					appendAsc(sb, asc).append(" nulls last, lower(v.displayname) asc");
 					break;
 				default:
-					sb.append(" order by lower(v.displayname)");
-					appendAsc(sb, asc);
+					if(asc) {
+						sb.append(" order by lower(v.displayname) asc, lifecycle.validFrom desc nulls last, lower(v.externalRef) asc nulls last");
+					} else {
+						sb.append(" order by lower(v.displayname) desc, lifecycle.validFrom desc nulls last, lower(v.externalRef) desc nulls last");
+					}
 					break;
 			}
 		}