diff --git a/Changes b/Changes
index b2ca454..545f29b 100644
--- a/Changes
+++ b/Changes
@@ -11,6 +11,7 @@
 - Use operation:override in query reference rewrite (#783)
 - Fixed availability regex for all access in the config (important to correctly 
   determine required access of stored VC)
+- Rename CollectionRewrite to AvailabilityRewrite  
   
 
 # version 0.75
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/CollectionRewrite.java b/src/main/java/de/ids_mannheim/korap/rewrite/AvailabilityRewrite.java
similarity index 96%
rename from src/main/java/de/ids_mannheim/korap/rewrite/CollectionRewrite.java
rename to src/main/java/de/ids_mannheim/korap/rewrite/AvailabilityRewrite.java
index 970efdd..75e9094 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/CollectionRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/AvailabilityRewrite.java
@@ -23,7 +23,7 @@
 import de.ids_mannheim.korap.utils.KoralCollectionQueryBuilder;
 
 /**
- * CollectionRewrite determines which availability field values are
+ * AvailabilityRewrite determines which availability field values are
  * possible for a user with respect to login and location of access.
  * 
  * <br/><br/>
@@ -43,13 +43,13 @@
  * @author margaretha
  * @see CorpusAccess
  */
-public class CollectionRewrite implements RewriteTask.RewriteQuery {
+public class AvailabilityRewrite implements RewriteTask.RewriteQuery {
 
-    public static Logger jlog = LogManager.getLogger(CollectionRewrite.class);
+    public static Logger jlog = LogManager.getLogger(AvailabilityRewrite.class);
 
     public static boolean DEBUG = false;
 
-    public CollectionRewrite () {
+    public AvailabilityRewrite () {
         super();
     }
 
diff --git a/src/test/java/de/ids_mannheim/korap/rewrite/CollectionRewriteTest.java b/src/test/java/de/ids_mannheim/korap/rewrite/AvailabilityRewriteTest.java
similarity index 98%
rename from src/test/java/de/ids_mannheim/korap/rewrite/CollectionRewriteTest.java
rename to src/test/java/de/ids_mannheim/korap/rewrite/AvailabilityRewriteTest.java
index 7a19e1f..ef7393f 100644
--- a/src/test/java/de/ids_mannheim/korap/rewrite/CollectionRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/rewrite/AvailabilityRewriteTest.java
@@ -18,7 +18,7 @@
  * @author hanl
  * @date 03/09/2015
  */
-public class CollectionRewriteTest extends SpringJerseyTest {
+public class AvailabilityRewriteTest extends SpringJerseyTest {
 
     @Autowired
     public KustvaktConfiguration config;
@@ -172,7 +172,7 @@
     public void testPublicCollectionRewriteEmptyAdd ()
             throws KustvaktException {
         RewriteHandler handler = new RewriteHandler(config);
-        handler.add(CollectionRewrite.class);
+        handler.add(AvailabilityRewrite.class);
         QuerySerializer s = new QuerySerializer();
         s.setQuery(TestVariables.SIMPLE_ADD_QUERY, "poliqarp");
         String org = s.toJSON();
@@ -192,7 +192,7 @@
     public void testPublicCollectionRewriteNonEmptyAdd ()
             throws KustvaktException {
         RewriteHandler handler = new RewriteHandler(config);
-        handler.add(CollectionRewrite.class);
+        handler.add(AvailabilityRewrite.class);
         QuerySerializer s = new QuerySerializer();
         s.setQuery(TestVariables.SIMPLE_ADD_QUERY, "poliqarp");
         s.setCollection("(docSigle=WPD_AAA & textClass=wissenschaft)");
diff --git a/src/test/java/de/ids_mannheim/korap/rewrite/ResultRewriteTest.java b/src/test/java/de/ids_mannheim/korap/rewrite/ResultRewriteTest.java
index 77767a0..ba2cbfd 100644
--- a/src/test/java/de/ids_mannheim/korap/rewrite/ResultRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/rewrite/ResultRewriteTest.java
@@ -7,7 +7,7 @@
 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.rewrite.CollectionRewrite;
+import de.ids_mannheim.korap.rewrite.AvailabilityRewrite;
 import de.ids_mannheim.korap.rewrite.RewriteHandler;
 import de.ids_mannheim.korap.utils.JsonUtils;
 
@@ -22,7 +22,7 @@
 
     @Test
     public void testPostRewriteNothingToDo () throws KustvaktException {
-        assertEquals(true, ha.add(CollectionRewrite.class),
+        assertEquals(true, ha.add(AvailabilityRewrite.class),
                 "Handler could not be added to rewrite handler instance!");
         String v = ha.processResult(TestVariables.RESULT, null);
         assertEquals(JsonUtils.readTree(TestVariables.RESULT),
diff --git a/src/test/resources/test-config-dnb.xml b/src/test/resources/test-config-dnb.xml
index ac4d373..3c74254 100644
--- a/src/test/resources/test-config-dnb.xml
+++ b/src/test/resources/test-config-dnb.xml
@@ -213,23 +213,17 @@
 	<!-- Rewrite -->
 	<bean id="foundryRewrite"
 		class="de.ids_mannheim.korap.rewrite.FoundryRewrite" />
-	<bean id="collectionRewrite"
-		class="de.ids_mannheim.korap.rewrite.CollectionRewrite" />
-	<bean id="collectionCleanRewrite"
-		class="de.ids_mannheim.korap.rewrite.CollectionCleanRewrite" />
+	<bean id="availabilityRewrite"
+		class="de.ids_mannheim.korap.rewrite.AvailabilityRewrite" />
 	<bean id="virtualCorpusRewrite"
 		class="de.ids_mannheim.korap.rewrite.VirtualCorpusRewrite" />
-	<bean id="collectionConstraint"
-		class="de.ids_mannheim.korap.rewrite.CollectionConstraint" />
 	<bean id="queryReferenceRewrite"
 		class="de.ids_mannheim.korap.rewrite.QueryReferenceRewrite" />
 
 	<util:list id="rewriteTasks"
 		value-type="de.ids_mannheim.korap.rewrite.RewriteTask">
-		<!-- <ref bean="collectionConstraint" /> <ref bean="collectionCleanRewrite" 
-			/> -->
 		<ref bean="foundryRewrite" />
-		<ref bean="collectionRewrite" />
+		<ref bean="availabilityRewrite" />
 		<ref bean="virtualCorpusRewrite" />
 		<ref bean="queryReferenceRewrite" />
 	</util:list>
diff --git a/src/test/resources/test-config-icc.xml b/src/test/resources/test-config-icc.xml
index 4924c3c..0c09b1d 100644
--- a/src/test/resources/test-config-icc.xml
+++ b/src/test/resources/test-config-icc.xml
@@ -217,23 +217,14 @@
 	<!-- Rewrite -->
 	<bean id="foundryRewrite"
 		class="de.ids_mannheim.korap.rewrite.FoundryRewrite" />
-	<bean id="collectionRewrite"
-		class="de.ids_mannheim.korap.rewrite.CollectionRewrite" />
-	<bean id="collectionCleanRewrite"
-		class="de.ids_mannheim.korap.rewrite.CollectionCleanRewrite" />
 	<bean id="virtualCorpusRewrite"
 		class="de.ids_mannheim.korap.rewrite.VirtualCorpusRewrite" />
-	<bean id="collectionConstraint"
-		class="de.ids_mannheim.korap.rewrite.CollectionConstraint" />
 	<bean id="queryReferenceRewrite"
 		class="de.ids_mannheim.korap.rewrite.QueryReferenceRewrite" />
 
 	<util:list id="rewriteTasks"
 		value-type="de.ids_mannheim.korap.rewrite.RewriteTask">
-		<!-- <ref bean="collectionConstraint" /> <ref bean="collectionCleanRewrite" 
-			/> -->
 		<ref bean="foundryRewrite" />
-		<!-- <ref bean="collectionRewrite" /> -->
 		<ref bean="virtualCorpusRewrite" />
 		<ref bean="queryReferenceRewrite" />
 	</util:list>
diff --git a/src/test/resources/test-config.xml b/src/test/resources/test-config.xml
index 1f8beba..343ca96 100644
--- a/src/test/resources/test-config.xml
+++ b/src/test/resources/test-config.xml
@@ -190,8 +190,8 @@
 	<!-- Rewrite -->
 	<bean id="foundryRewrite"
 		class="de.ids_mannheim.korap.rewrite.FoundryRewrite" />
-	<bean id="collectionRewrite"
-		class="de.ids_mannheim.korap.rewrite.CollectionRewrite" />
+	<bean id="availabilityRewrite"
+		class="de.ids_mannheim.korap.rewrite.AvailabilityRewrite" />
 	<bean id="virtualCorpusRewrite"
 		class="de.ids_mannheim.korap.rewrite.VirtualCorpusRewrite" />
 	<bean id="queryReferenceRewrite"
@@ -203,7 +203,7 @@
 	<util:list id="rewriteTasks"
 		value-type="de.ids_mannheim.korap.rewrite.RewriteTask">
 		<ref bean="foundryRewrite" />
-		<ref bean="collectionRewrite" />
+		<ref bean="availabilityRewrite" />
 		<ref bean="virtualCorpusRewrite" />
 		<ref bean="queryReferenceRewrite" />
 		<ref bean="queryContextRewrite" />
