diff --git a/src/test/java/de/ids_mannheim/korap/rewrite/TimeoutRewriteTest.java b/src/test/java/de/ids_mannheim/korap/rewrite/TimeoutRewriteTest.java
new file mode 100644
index 0000000..43146ed
--- /dev/null
+++ b/src/test/java/de/ids_mannheim/korap/rewrite/TimeoutRewriteTest.java
@@ -0,0 +1,63 @@
+package de.ids_mannheim.korap.rewrite;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+import de.ids_mannheim.korap.config.KustvaktConfiguration;
+import de.ids_mannheim.korap.config.SpringJerseyTest;
+import de.ids_mannheim.korap.config.TestVariables;
+import de.ids_mannheim.korap.exceptions.KustvaktException;
+import de.ids_mannheim.korap.query.serialize.QuerySerializer;
+import de.ids_mannheim.korap.user.User;
+import de.ids_mannheim.korap.utils.JsonUtils;
+
+public class TimeoutRewriteTest extends SpringJerseyTest {
+
+	@Autowired
+	public KustvaktConfiguration config;
+
+	@Test
+	public void testReplaceTimeout () 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", 50000);
+        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(10000, node.at("/timeout").asInt());
+        assertEquals(50000, node.at("/rewrites/0/original").asInt());
+	}
+	
+	@Test
+	public void testAddTimeout () throws KustvaktException {
+		RewriteHandler handler = new RewriteHandler(config);
+        handler.add(TimeoutRewrite.class);
+        
+        Map<String, Object> map = new HashMap<String,Object>();
+        map.put("count", 25);
+        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(10000, node.at("/timeout").asInt());
+	}
+}
diff --git a/src/test/resources/test-config.xml b/src/test/resources/test-config.xml
index 7a95588..5fd5ff2 100644
--- a/src/test/resources/test-config.xml
+++ b/src/test/resources/test-config.xml
@@ -214,6 +214,8 @@
 	<!-- Rewrite -->
 	<bean id="foundryRewrite"
 		class="de.ids_mannheim.korap.rewrite.FoundryRewrite" />
+	<bean id="timeoutRewrite"
+	class="de.ids_mannheim.korap.rewrite.TimeoutRewrite" />	
 	<bean id="availabilityRewrite"
 		class="de.ids_mannheim.korap.rewrite.AvailabilityRewrite" />
 	<bean id="virtualCorpusRewrite"
@@ -227,6 +229,7 @@
 	<util:list id="rewriteTasks"
 		value-type="de.ids_mannheim.korap.rewrite.RewriteTask">
 		<ref bean="foundryRewrite" />
+		<ref bean="timeoutRewrite" />
 		<ref bean="availabilityRewrite" />
 		<ref bean="virtualCorpusRewrite" />
 		<ref bean="queryReferenceRewrite" />
@@ -241,6 +244,7 @@
 	<util:list id="statisticsRewriteTasks"
 		value-type="de.ids_mannheim.korap.rewrite.RewriteTask">
 		<ref bean="foundryRewrite" />
+		<ref bean="timeoutRewrite" />
 		<ref bean="virtualCorpusRewrite" />
 		<ref bean="queryReferenceRewrite" />
 	</util:list>
