diff --git a/aleksis/apps/untis/preferences.py b/aleksis/apps/untis/preferences.py
index 9b78b2333e0b4b93cde73fe420ea9b4d34bf5776..56dbd3f55a8251535adfe9c418d91700b7738f3e 100644
--- a/aleksis/apps/untis/preferences.py
+++ b/aleksis/apps/untis/preferences.py
@@ -48,6 +48,14 @@ class UpdateGroupsName(BooleanPreference):
     verbose_name = _("Update name of existing groups")
 
 
+@site_preferences_registry.register
+class DisambiguateGroupsName(BooleanPreference):
+    section = untis_mysql
+    name = "disambiguate_groups_name"
+    default = True
+    verbose_name = _("Disambiguate name of new groups")
+
+
 @site_preferences_registry.register
 class OverwriteGroupOwners(BooleanPreference):
     section = untis_mysql
diff --git a/aleksis/apps/untis/util/mysql/importers/common_data.py b/aleksis/apps/untis/util/mysql/importers/common_data.py
index b8d37a0d178070d5a96cc5c1b6cf0a159c9dcc87..cb87a30929e70819e098f7d430d796795b189cc7 100644
--- a/aleksis/apps/untis/util/mysql/importers/common_data.py
+++ b/aleksis/apps/untis/util/mysql/importers/common_data.py
@@ -1,4 +1,5 @@
 import logging
+import re
 from datetime import time
 from enum import Enum
 from typing import Dict
@@ -191,6 +192,30 @@ def import_classes(
                 school_term__in=[None, validity_range.school_term],
             )
         except core_models.Group.DoesNotExist:
+            # Determine collisions of long name
+            while core_models.Group.objects.filter(
+                name=name, school_termn=validity_range.school_term
+            ).exists():
+                if not get_site_preferences()["untis_mysql__disambiguate_groups_name"]:
+                    # Do not try to disambiguate it not enabled
+                    break
+
+                suffix = f" ({short_name})"
+                if name.endswith(suffix):
+                    # First try, add a counter
+                    name = f"{name} (2)"
+                else:
+                    # Second or more tries, determine last counter, if any
+                    match = re.match(r"^(.*)(\(\d+\))$", name)
+                    if match:
+                        # Counter found, increase
+                        prefix = match.group(1)
+                        counter = int(match.group(2)) + 1
+                        name = f"{prefix}({counter})"
+                    else:
+                        # Counter not found, add one
+                        name = f"{name} (2)"
+
             new_group = core_models.Group.objects.create(
                 short_name=short_name,
                 name=name,