diff --git a/src/main/java/de/ids_mannheim/korap/cache/VirtualCorpusCache.java b/src/main/java/de/ids_mannheim/korap/cache/VirtualCorpusCache.java
index 81e094c..73566a2 100644
--- a/src/main/java/de/ids_mannheim/korap/cache/VirtualCorpusCache.java
+++ b/src/main/java/de/ids_mannheim/korap/cache/VirtualCorpusCache.java
@@ -245,13 +245,22 @@
         map.clear();
 
         File vcCache = new File(CACHE_LOCATION + "/");
-        for (File vc : vcCache.listFiles()) {
-            for (File f : vc.listFiles()) {
-                if (f.exists()) {
-                    f.delete();
+        if (!vcCache.exists()) {
+            return;
+        }
+        File[] vcs = vcCache.listFiles();
+        if (vcs != null) {
+            for (File vc : vcs) {
+                File[] files = vc.listFiles();
+                if (files != null) {
+                    for (File f : files) {
+                        if (f.exists()) {
+                            f.delete();
+                        }
+                    }
                 }
+                vc.delete();
             }
-            vc.delete();
         }
         vcCache.delete();
     }
diff --git a/src/test/java/de/ids_mannheim/korap/cache/TestVirtualCorpusCache.java b/src/test/java/de/ids_mannheim/korap/cache/TestVirtualCorpusCache.java
index 2c8edc2..ef6c436 100644
--- a/src/test/java/de/ids_mannheim/korap/cache/TestVirtualCorpusCache.java
+++ b/src/test/java/de/ids_mannheim/korap/cache/TestVirtualCorpusCache.java
@@ -12,6 +12,8 @@
 
 import org.apache.commons.io.IOUtils;
 import org.junit.Test;
+import org.junit.Before;
+import org.junit.After;
 
 import de.ids_mannheim.korap.Krill;
 import de.ids_mannheim.korap.KrillCollection;
@@ -46,6 +48,19 @@
         queryRefJson2 = IOUtils.toString(is, "utf-8");
     }
 
+    @Before
+    public void setUpCacheLocation() {
+        // Use an isolated cache directory per test run to avoid cross-test interference
+        VirtualCorpusCache.CACHE_LOCATION = "target/vc-cache-test-" + System.nanoTime();
+        VirtualCorpusCache.reset();
+        new VirtualCorpusCache();
+    }
+
+    @After
+    public void tearDownCache() {
+        VirtualCorpusCache.reset();
+    }
+
 
     public static KrillIndex createIndex () throws IOException {
         KrillIndex ki = new KrillIndex();
