diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/TimeoutRewrite.java b/src/main/java/de/ids_mannheim/korap/rewrite/TimeoutRewrite.java
index a467ce5..1cdfd2f 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/TimeoutRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/TimeoutRewrite.java
@@ -16,12 +16,14 @@
             int timeout = (access.equals(CorpusAccess.FREE)) ?
 				config.getGuestTimeout() : config.getLoginTimeout();
             
-			if (node.has("timeout")) {
-				RewriteIdentifier id = new RewriteIdentifier("timeout",
-						node.get("timeout"), "Timeout has been replaced. "
-						+ "The original value is described in the original "
-						+ "property.");
-				node.replace("timeout", timeout, id);
+			if (node.has("timeout")) { 
+				if (node.at("/timeout").asInt() > timeout) {
+    				RewriteIdentifier id = new RewriteIdentifier("timeout",
+    						node.get("timeout"), "Timeout has been replaced. "
+    						+ "The original value is described in the original "
+    						+ "property.");
+    				node.replace("timeout", timeout, id);
+				}
 			}
             else {
             	RewriteIdentifier id = new RewriteIdentifier("timeout", null, 
diff --git a/src/test/java/de/ids_mannheim/korap/rewrite/TimeoutRewriteTest.java b/src/test/java/de/ids_mannheim/korap/rewrite/TimeoutRewriteTest.java
index 43146ed..84a3d5a 100644
--- a/src/test/java/de/ids_mannheim/korap/rewrite/TimeoutRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/rewrite/TimeoutRewriteTest.java
@@ -1,6 +1,7 @@
 package de.ids_mannheim.korap.rewrite;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -24,6 +25,26 @@
 	public KustvaktConfiguration config;
 
 	@Test
+	public void testNoRewrite () throws KustvaktException {
+		RewriteHandler handler = new RewriteHandler(config);
+        handler.add(TimeoutRewrite.class);
+        
+        Map<String, Object> map = new HashMap<String,Object>();
+        map.put("count", 25);
+        map.put("timeout", 1000);
+        QuerySerializer s = new QuerySerializer();
+        s.setQuery(TestVariables.SIMPLE_ADD_QUERY, "poliqarp");
+        s.setMeta(map);
+        String result = s.toJSON();
+        JsonNode node = JsonUtils.readTree(handler.processQuery(result,
+                User.UserFactory.getUser("test_user")));
+        
+        node = node.at("/meta"); 
+        assertEquals(1000, node.at("/timeout").asInt());
+        assertTrue(node.at("/rewrites").isMissingNode());
+	}
+	
+	@Test
 	public void testReplaceTimeout () throws KustvaktException {
 		RewriteHandler handler = new RewriteHandler(config);
         handler.add(TimeoutRewrite.class);
