diff --git a/src/main/antlr/CollectionQuery.g4 b/src/main/antlr/CollectionQuery.g4
index 5949b73..d3b25b4 100644
--- a/src/main/antlr/CollectionQuery.g4
+++ b/src/main/antlr/CollectionQuery.g4
@@ -52,7 +52,7 @@
 NL                  : [\r\n] -> skip;
 ws                  : WS+;
 
-WORD                : ALPHABET* ALPHA ALPHABET*;  // needs to have at least one alphabetical letter
+WORD                : ALPHABET* ALPHA ALPHABET*;  // needs to have at least one alphabetical letter (non-numeric)
 
 /*
  * Regular expressions
@@ -139,11 +139,15 @@
 	
 value
 : WORD
-| '"' (WORD ws*)+'"'
+| multiword
 | date
 | regex
 ;
 
+multiword
+: '"' WORD+ '"'
+;
+
 relation
 :	(expr|exprGroup) booleanOp (expr|exprGroup|relation)
 ; 
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/CollectionQueryTree.java b/src/main/java/de/ids_mannheim/korap/query/serialize/CollectionQueryTree.java
index 8cecce4..330b01a 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/CollectionQueryTree.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/CollectionQueryTree.java
@@ -231,6 +231,12 @@
     		String regex = valueNode.getChild(0).getChild(0).toStringTree(parser);
     		map.put("value", regex.substring(1, regex.length()-1));
     		map.put("type", "type:regex");
+    	} else if (getNodeCat(valueNode.getChild(0)).equals("multiword")) {
+    		String mw = "";
+    		for (int i=1; i<valueNode.getChild(0).getChildCount()-1; i++) {
+    			mw += valueNode.getChild(0).getChild(i).getText() + " ";
+    		}
+    		map.put("value", mw.substring(0, mw.length()-1));
     	} else if (getNodeCat(valueNode.getChild(0)).equals("date")) {
     		map.put("type", "type:date");
     		String value = valueNode.getChild(0).getChild(0).toStringTree(parser);
@@ -348,7 +354,7 @@
 			if (getNodeCat(keyNode.getChild(0)).equals("regex")) {
 				isRegex = true;
 				term.put("type", "type:regex");
-				key = key.substring(1, key.length()-1); // remove leading and trailing quotes
+				key = key.substring(1, key.length()-1); // remove leading and trailing slashes
 			}
 			if (mode.equals("span")) term.put("value", key);
 			else term.put("key", key);
@@ -437,8 +443,6 @@
         query = "1990<year<2010 & genre=Sport";
         query = "1990<year<2010";
         query = "pubDate<Sport";
-        query = "title~Hamburg";
-//        query = "foo=b-ar";
 //    	filter.verbose = true;
         CollectionQueryTree filter = null;
         try {
diff --git a/src/test/java/CollectionQueryTreeTest.java b/src/test/java/CollectionQueryTreeTest.java
index 349b98a..1dd488b 100644
--- a/src/test/java/CollectionQueryTreeTest.java
+++ b/src/test/java/CollectionQueryTreeTest.java
@@ -38,6 +38,14 @@
 		cqt.process(query);
 		map = cqt.getRequestMap().get("collection").toString();
 		assertEquals(expected.replaceAll(" ", ""), map.replaceAll(" ", ""));
+		
+		query = "title~\"IDS Mannheim\"";
+		expected = 
+			"{@type=korap:doc, key=title, value=IDS Mannheim, match=match:contains}";
+		cqt = new CollectionQueryTree();
+		cqt.process(query);
+		map = cqt.getRequestMap().get("collection").toString();
+		assertEquals(expected.replaceAll(" ", ""), map.replaceAll(" ", ""));
 	}
 	
 	@Test
