Index: trunk/src/org/openstreetmap/josm/tools/TextTagParser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/TextTagParser.java	(revision 5755)
+++ trunk/src/org/openstreetmap/josm/tools/TextTagParser.java	(revision 5756)
@@ -1,4 +1,5 @@
 package org.openstreetmap.josm.tools;
 
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
@@ -51,9 +52,9 @@
                 skipEmpty();
                 if (pos == n) { break; }
-                k = parseString(true);
+                k = parseString("\n\r\t= ");
                 if (pos == n) { tags.clear();  break; }
                 skipSign();
                 if (pos == n) { tags.clear();  break; }
-                v = parseString(false);
+                v = parseString("\n\r\t ");
                 tags.put(k, v);
             }
@@ -61,5 +62,7 @@
         }
         
-        private String parseString(boolean stopOnEquals) {
+        private String parseString(String stopChars) {
+            char stop[] = stopChars.toCharArray();
+            Arrays.sort(stop);
             char c;
             while (pos < n) {
@@ -81,6 +84,6 @@
                     pos++;
                     break;
-                } else if (!quotesStarted && (c=='\n'|| c=='\t'|| c==' ' || c=='\r'
-                      || (c=='=' && stopOnEquals))) {  // stop-symbols
+                } else if (!quotesStarted && (Arrays.binarySearch(stop, c)>=0)) { 
+                    // stop-symbol found
                     pos++;
                     break;
@@ -127,5 +130,5 @@
     }
 
-    private static String unescape(String k) {
+    protected static String unescape(String k) {
         if(! (k.startsWith("\"") && k.endsWith("\"")) ) {
             if (k.contains("=")) {
@@ -137,5 +140,5 @@
         }
         String text = k.substring(1,k.length()-1);
-        return (new TextAnalyzer(text)).parseString(false);
+        return (new TextAnalyzer(text)).parseString("\r\t\n");
     }
 
