Index: /trunk/src/org/openstreetmap/josm/tools/TextTagParser.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/TextTagParser.java	(revision 7785)
+++ /trunk/src/org/openstreetmap/josm/tools/TextTagParser.java	(revision 7786)
@@ -204,5 +204,5 @@
         // Format
         // tag1\tval1\ntag2\tval2\n
-        tags = readTagsByRegexp(buf, "[\\r\\n]+", "([a-zA-Z0-9:_]+)\\t(.*?)", false);
+        tags = readTagsByRegexp(buf, "[\\r\\n]+", ".*([a-zA-Z0-9:_]+).*\\t(.*?)", false);
                 // try "tag\tvalue\n" format
         if (tags!=null) return tags;
@@ -213,5 +213,5 @@
         // a = "b=c" is OK
         // a = b=c  - this method of parsing fails intentionally
-        tags = readTagsByRegexp(buf, "[\\n\\t\\r]+", "([a-zA-Z0-9:_]+)=(.*?)", true);
+        tags = readTagsByRegexp(buf, "[\\n\\t\\r]+", "(.*?)=(.*?)", true);
                 // try format  t1=v1\n t2=v2\n ...
         if (tags!=null) return tags;
Index: /trunk/test/unit/org/openstreetmap/josm/tools/TextTagParserTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/TextTagParserTest.java	(revision 7785)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/TextTagParserTest.java	(revision 7786)
@@ -39,7 +39,7 @@
     @Test
     public void testTNformat() {
-        String txt = "   a  \t  1   \n\n\n  b=2 \t the value with \"quotes\"";
+        String txt = "   a  \t  1   \n\n\n  b\t2 \n c \t the value with \"quotes\"";
         Map<String, String> correctTags = new HashMap<String, String>() { {
-            put("a", "1"); put("b=2", "the value with \"quotes\"");
+            put("a", "1"); put("b", "2"); put("c", "the value with \"quotes\"");
         }};
         Map<String, String> tags = TextTagParser.readTagsFromText(txt);
