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 919c3c0..292c8e0 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
@@ -104,8 +104,6 @@
         testUpdateUserGroup(groupName);
         testAddMember(groupName, username, "darla");
         testDeleteGroup(groupName,username);
-//        testSubscribeToDeletedGroup(groupName);
-//        testUnsubscribeToDeletedGroup(groupName);
     }
     
     private void testUpdateUserGroup (String groupName)
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/usergroup/UserGroupTestBase.java b/src/test/java/de/ids_mannheim/korap/web/controller/usergroup/UserGroupTestBase.java
index b8f3bc1..630ee66 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/usergroup/UserGroupTestBase.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/usergroup/UserGroupTestBase.java
@@ -73,25 +73,12 @@
         return response;
     }
     
-//    protected Response inviteMember (String groupName, String invitor,
-//            String invitee) throws KustvaktException {
-//        Form form = new Form();
-//        form.param("members", invitee);
-//        Response response = target().path(API_VERSION).path("group")
-//                .path("@" + groupName).path("invite").request()
-//                .header(HttpHeaders.X_FORWARDED_FOR, "149.27.0.32")
-//                .header(Attributes.AUTHORIZATION, HttpAuthorizationHandler
-//                        .createBasicAuthorizationHeaderValue(invitor, "pass"))
-//                .post(Entity.form(form));
-////        assertEquals(Status.OK.getStatusCode(), response.getStatus());
-//        return response;
-//    }
-    
     protected void testAddMember (String groupName, String username,
             String memberUsername)
             throws KustvaktException {
         Response response = addMember(groupName, memberUsername, username);
         assertEquals(Status.OK.getStatusCode(), response.getStatus());
+        
         // list group
         JsonNode node = listUserGroups(username);
         node = node.get(0);
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusSharingTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusSharingTest.java
index 3f1c8c0..5a1b900 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusSharingTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusSharingTest.java
@@ -301,7 +301,7 @@
         JsonNode node = listUserGroups(testUser).get(0);
         assertEquals(2, node.get("members").size());
         assertEquals(memberName, node.at("/members/1/userId").asText());
-        assertEquals(PrivilegeType.DELETE_MEMBER.name(),
+        assertEquals(PrivilegeType.DELETE_SELF.name(),
                 node.at("/members/1/privileges/0").asText());
     }
 
