diff --git a/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java b/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
index 7ce4845..3d8dafb 100644
--- a/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
+++ b/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
@@ -65,6 +65,7 @@
 //    private int maxTokenMatch; // EM: Not implemented yet
 
     private int maxTokenContextLarge;
+    private boolean largeContextGroupEnabled;
     
     private int maxhits;
     private int returnhits;
@@ -249,6 +250,9 @@
         maxTokenContextLarge = Integer.parseInt(properties.getProperty(
                 "max.token.context.size.large", "0"));
         
+        largeContextGroupEnabled = Boolean.parseBoolean(properties.getProperty(
+                "large.context.group.enabled", "false"));
+        
         // Timeout validity in milis
         guestTimeout = Integer.parseInt(properties.getProperty(
                 "timeout.guest", "10000"));
diff --git a/src/main/java/de/ids_mannheim/korap/init/Initializator.java b/src/main/java/de/ids_mannheim/korap/init/Initializator.java
index 353cc09..af2f57c 100644
--- a/src/main/java/de/ids_mannheim/korap/init/Initializator.java
+++ b/src/main/java/de/ids_mannheim/korap/init/Initializator.java
@@ -68,7 +68,9 @@
             clientService.createInitialSuperClient(
                     OAuth2InitClientService.OUTPUT_FILENAME);
         }
-        createLargeContextGroup ();
+        if (config.isLargeContextGroupEnabled()) {
+            createLargeContextGroup();
+        }
         
         vcLoader.apiVersion = apiVersion;
         Thread t = new Thread(vcLoader);
@@ -96,7 +98,9 @@
 		queryService.handlePutRequest("system", "system", "system-q", q, 
 				apiVersion);
 
-		createLargeContextGroup ();
+		if (config.isLargeContextGroupEnabled()) {
+			createLargeContextGroup();
+		}
 	}
 	
 	private void createLargeContextGroup () throws KustvaktException {
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/QueryContextRewrite.java b/src/main/java/de/ids_mannheim/korap/rewrite/QueryContextRewrite.java
index 470368d..1c72666 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/QueryContextRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/QueryContextRewrite.java
@@ -30,7 +30,9 @@
     public KoralNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
             User user, double apiVersion) throws KustvaktException {
 
-        int maxContext = isInLargeContextGroup(user)
+        boolean useLargeContext = config.isLargeContextGroupEnabled()
+                && isInLargeContextGroup(user);
+        int maxContext = useLargeContext
                 ? config.getMaxTokenContextLarge()
                 : config.getMaxTokenContext();
         if (maxContext > 0) {
diff --git a/src/test/resources/kustvakt-test.conf b/src/test/resources/kustvakt-test.conf
index 9cd1a9e..8f7cf6a 100644
--- a/src/test/resources/kustvakt-test.conf
+++ b/src/test/resources/kustvakt-test.conf
@@ -49,6 +49,7 @@
 # Virtual corpus and queries
 max.user.persistent.queries = 5
 max.token.context.size = 40
+large.context.group.enabled = true
 max.token.context.size.large = 50
 
 # default false
