diff --git a/Changes b/Changes
index 6739ef1..a3b2545 100644
--- a/Changes
+++ b/Changes
@@ -4,6 +4,8 @@
 - Fix deprecated URL constructor (AI assisted)
 - Fix Jackson and serialization deprecated methods (AI assisted)
 - Change Userdata to use String username instead of integer userId
+- Allow admin to create groups with name length less than 3 characters 
+  to support existing groups from C2
 
 # version 1.1
 
diff --git a/src/main/java/de/ids_mannheim/korap/service/UserGroupService.java b/src/main/java/de/ids_mannheim/korap/service/UserGroupService.java
index 6362d25..897bd20 100644
--- a/src/main/java/de/ids_mannheim/korap/service/UserGroupService.java
+++ b/src/main/java/de/ids_mannheim/korap/service/UserGroupService.java
@@ -198,7 +198,10 @@
      */
     public boolean createUpdateUserGroup (String groupName, String description,
             String createdBy) throws KustvaktException {
-        ParameterChecker.checkNameValue(groupName, "groupName");
+    	
+    	if (!adminDao.isAdmin(createdBy)) {
+    		ParameterChecker.checkNameValue(groupName, "groupName");
+        }        
         ParameterChecker.checkStringValue(createdBy, "createdBy");
 
         if (!groupNamePattern.matcher(groupName).matches()) {
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/usergroup/UserGroupControllerTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/usergroup/UserGroupControllerTest.java
index a1754fd..a82736b 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/usergroup/UserGroupControllerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/usergroup/UserGroupControllerTest.java
@@ -80,6 +80,20 @@
             node.at("/errors/0/1").asText());
         assertEquals("groupName", node.at("/errors/0/2").asText());
     }
+    
+    @Test
+    public void testCreateGroupShortNameAdmin ()
+            throws KustvaktException {
+        String groupName = "ab";
+        Response response = target().path(API_VERSION).path("group")
+                .path("@" + groupName).request()
+                .header(Attributes.AUTHORIZATION, HttpAuthorizationHandler
+                        .createBasicAuthorizationHeaderValue(admin, "pass"))
+                .header(HttpHeaders.X_FORWARDED_FOR, "149.27.0.32")
+                .put(Entity.form(new Form()));
+        assertEquals(Status.CREATED.getStatusCode(), response.getStatus());
+		deleteGroupByName(groupName,admin);
+    }
 
     @Test
     public void testUserGroup () throws KustvaktException {
