diff --git a/src/test/java/de/ids_mannheim/korap/web/InitialSuperClientTest.java b/src/test/java/de/ids_mannheim/korap/web/InitialSuperClientTest.java
index afa723d..2649a77 100644
--- a/src/test/java/de/ids_mannheim/korap/web/InitialSuperClientTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/InitialSuperClientTest.java
@@ -25,17 +25,19 @@
 
     @Autowired
     private FullConfiguration config;
-
     @Autowired
     private OAuth2ClientDao clientDao;
+    @Autowired
+	private OAuth2InitClientService clientService;
 
     private String path = KustvaktConfiguration.DATA_FOLDER + "/"
             + OAuth2InitClientService.TEST_OUTPUT_FILENAME;
-
+    
     @Test
     public void testCreatingInitialSuperClient ()
             throws IOException, KustvaktException {
-        assertTrue(config.createInitialSuperClient());
+    	assertTrue(config.createInitialSuperClient());
+    	// The file was created during server start
         File f = new File(path);
         assertTrue(f.exists());
         JsonNode node = JsonUtils.readFile(path, JsonNode.class);
@@ -44,6 +46,27 @@
         OAuth2Client superClient = clientDao.retrieveClientById(superClientId);
         assertTrue(superClient.isSuper());
         testLogin(superClientId, superClientSecret);
+        assertEquals(2,clientDao.retrieveSuperClients());
+        
+        clientDao.deregisterClient(superClient);
+        assertEquals(1,clientDao.retrieveSuperClients());
+        
+        testRegisterFromExistingFile();
+    }
+    
+    private void testRegisterFromExistingFile ()
+            throws IOException, KustvaktException {
+    	
+    	clientService.createInitialTestSuperClient();
+        assertEquals(2,clientDao.retrieveSuperClients());
+        
+        JsonNode node = JsonUtils.readFile(path, JsonNode.class);
+        String superClientId = node.at("/client_id").asText();
+        OAuth2Client superClient = clientDao.retrieveClientById(superClientId);
+        assertTrue(superClient.isSuper());
+
+        clientDao.deregisterClient(superClient);
+        assertEquals(1,clientDao.retrieveSuperClients());
         removeSuperClientFile();
     }
 
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/oauth2/OAuth2TestBase.java b/src/test/java/de/ids_mannheim/korap/web/controller/oauth2/OAuth2TestBase.java
index e8d5b94..6e10946 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/oauth2/OAuth2TestBase.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/oauth2/OAuth2TestBase.java
@@ -100,14 +100,14 @@
 					"super confidential client", OAuth2ClientType.CONFIDENTIAL,
 					"http://korap.ids-mannheim.de/confidential",
 					"https://korap.ids-mannheim.de/confidential/redirect",
-					"system", "Super confidential client.", 0, null, false);
+					"system", "Super confidential client.", 0, null);
 		}
 		
 		try {
 			clientDao.retrieveClientById(publicClientId);
 		}
 		catch (KustvaktException e) {
-			clientDao.registerClient(publicClientId, null,
+			clientDao.registerClient(false, publicClientId, null,
 					"public client plugin with redirect uri",
 					OAuth2ClientType.PUBLIC, "https://third.party.client.com",
 					"https://third.party.client.com/redirect", "system",
@@ -119,7 +119,7 @@
 			clientDao.retrieveClientById(publicClientId2);
 		}
 		catch (KustvaktException e) {
-			clientDao.registerClient(publicClientId2, null,
+			clientDao.registerClient(false, publicClientId2, null,
 					"test public client", OAuth2ClientType.PUBLIC,
 					"http://korap.ids-mannheim.de/public", null, "system",
 					"Public client without redirect uri", 0, null);
@@ -129,7 +129,7 @@
 			clientDao.retrieveClientById(confidentialClientId);
 		}
 		catch (KustvaktException e) {
-			clientDao.registerClient(confidentialClientId,
+			clientDao.registerClient(false, confidentialClientId,
 					"$2a$08$vi1FbuN3p6GcI1tSxMAoeuIYL8Yw3j6A8wJthaN8ZboVnrQaTwLPq",
 					"non super confidential client",
 					OAuth2ClientType.CONFIDENTIAL,
@@ -148,7 +148,10 @@
 					"confidential client 2", OAuth2ClientType.CONFIDENTIAL,
 					"http://example.client.de", null, "system",
 					"Nonsuper confidential client plugin without redirect URI",
-					0, source, true);
+					0, source);
+			OAuth2Client client = clientDao.retrieveClientById(confidentialClientId2);
+			client.setPermitted(true);
+			clientDao.updateClient(client);
 		}
 	}
     
diff --git a/src/test/resources/test-jdbc.properties b/src/test/resources/test-jdbc.properties
index 5e84ae0..4489537 100644
--- a/src/test/resources/test-jdbc.properties
+++ b/src/test/resources/test-jdbc.properties
@@ -5,7 +5,7 @@
 jdbc.driverClassName=org.sqlite.JDBC
 #jdbc.url=jdbc:sqlite::memory:
 jdbc.url=jdbc:sqlite:file::memory:?cache=shared
-#jdbc.url=jdbc:sqlite:testDB.sqlite
+#jdbc.url=jdbc:sqlite:data/testDB.sqlite
 jdbc.username=pc
 jdbc.password=pc
 jdbc.schemaPath=classpath:db/sqlite,db/predefined
\ No newline at end of file
