diff --git a/full/src/main/resources/service.properties b/full/src/main/resources/service.properties
index cf2899d..2f428f5 100644
--- a/full/src/main/resources/service.properties
+++ b/full/src/main/resources/service.properties
@@ -1,3 +1,4 @@
 kustvakt.version=${project.version}
 krill.version=${krill.version}
-koral.version=${koral.version}
\ No newline at end of file
+koral.version=${koral.version}
+kustvakt.cache=true
\ No newline at end of file
diff --git a/full/src/test/java/de/ids_mannheim/korap/cache/TotalResultTest.java b/full/src/test/java/de/ids_mannheim/korap/cache/TotalResultTest.java
index d7ca6cc..cba8054 100644
--- a/full/src/test/java/de/ids_mannheim/korap/cache/TotalResultTest.java
+++ b/full/src/test/java/de/ids_mannheim/korap/cache/TotalResultTest.java
@@ -19,13 +19,26 @@
 
     @Autowired
     private SearchService searchService;
+    
+    @Test
+    public void testClearCache () {
+        for (int i = 1; i < 10; i++) {
+            searchService.getTotalResultCache().storeInCache(i, "10");
+        }
+        
+        searchService.getTotalResultCache().clearCache();
+        
+        assertEquals(0, searchService.getTotalResultCache()
+                .getAllCacheElements().size());
+    }
 
     @Test
     public void testSearchWithPaging () throws KustvaktException {
-
+        searchService.getTotalResultCache().clearCache();
+        
         assertEquals(0, searchService.getTotalResultCache()
                 .getAllCacheElements().size());
-
+        
         Response response = target().path(API_VERSION).path("search")
                 .queryParam("q", "[orth=die]").queryParam("ql", "poliqarp")
                 .queryParam("page", "1").request().get();
diff --git a/full/src/test/java/de/ids_mannheim/korap/dao/VirtualCorpusDaoTest.java b/full/src/test/java/de/ids_mannheim/korap/dao/VirtualCorpusDaoTest.java
index 0dd9f24..9f38cf8 100644
--- a/full/src/test/java/de/ids_mannheim/korap/dao/VirtualCorpusDaoTest.java
+++ b/full/src/test/java/de/ids_mannheim/korap/dao/VirtualCorpusDaoTest.java
@@ -73,9 +73,6 @@
                     "corpusSigle=GOE", "definition", "description", "experimental",
                     false, "system", null, null);
         });        
-        assertEquals(
-                "org.hibernate.exception.GenericJDBCException: could not execute statement",
-                exception.getMessage());
     }
 
     @Test
diff --git a/full/src/test/java/de/ids_mannheim/korap/web/JettyServerTest.java b/full/src/test/java/de/ids_mannheim/korap/web/JettyServerTest.java
index 30d47d2..7453647 100644
--- a/full/src/test/java/de/ids_mannheim/korap/web/JettyServerTest.java
+++ b/full/src/test/java/de/ids_mannheim/korap/web/JettyServerTest.java
@@ -12,12 +12,14 @@
 import org.eclipse.jetty.server.handler.HandlerList;
 import org.eclipse.jetty.server.handler.ShutdownHandler;
 import org.junit.BeforeClass;
+import org.junit.Ignore;
 import org.junit.Test;
 
 /**
  * @author margaretha
  *
  */
+@Ignore
 public class JettyServerTest {
 
     @BeforeClass
