Index: /applications/editors/josm/plugins/comfort0/src/net/simon04/comfort0/level0l/Level0LParser.jj
===================================================================
--- /applications/editors/josm/plugins/comfort0/src/net/simon04/comfort0/level0l/Level0LParser.jj	(revision 35283)
+++ /applications/editors/josm/plugins/comfort0/src/net/simon04/comfort0/level0l/Level0LParser.jj	(revision 35284)
@@ -17,5 +17,5 @@
 <DEFAULT> //HEADER
 TOKEN: {
-    <H_EOL: ("\n" | "\r" | "\r\n") >
+    <H_EOL: ("\n" | "\r" | "\r\n") > : DATA
     | <H_ID: (["0"-"9"])+ >
     | <NODE: "node" >
@@ -39,10 +39,17 @@
 TOKEN: {
     <D_EOL: ("\n" | "\r" | "\r\n") >
+    | <D_SPACE: " " >
     | <D_ID: (["0"-"9"])+ >
     | <WY: "wy" >
     | <ND: "nd" >
     | <REL: "rel" >
-    | <EQ: "=" >
+    | <EQ: "=" > : VALUE
     | <IDENT: ["a"-"z", "A"-"Z", "_"] (["a"-"z", "A"-"Z", "_", "-", "0"-"9"])* >
+}
+
+<VALUE>
+TOKEN: {
+    <V_EOL: ("\n" | "\r" | "\r\n") > : DATA
+    | <TEXT: (~["\n", "\r"])+ >
 }
 
@@ -63,4 +70,25 @@
     { r.setCoor(new LatLon(Double.parseDouble(lat.image), Double.parseDouble(lon.image))); }
     (<COMMENT_START> | <H_EOL>)
+    tags(r)
     { return r; }
 }
+
+void tags(PrimitiveData r):
+{}
+{
+    ( tag(r) )*
+}
+
+void tag(PrimitiveData r):
+{
+    Token k, v;
+}
+{
+    <D_SPACE> <D_SPACE>
+    k=<IDENT>
+    ( <D_SPACE> ) *
+    <EQ>
+    v=<TEXT>
+    <V_EOL>
+    { r.put(k.image.trim(), v.image.trim()); }
+}
Index: /applications/editors/josm/plugins/comfort0/test/unit/net/simon04/comfort0/level0l/parsergen/Level0LParserTest.java
===================================================================
--- /applications/editors/josm/plugins/comfort0/test/unit/net/simon04/comfort0/level0l/parsergen/Level0LParserTest.java	(revision 35283)
+++ /applications/editors/josm/plugins/comfort0/test/unit/net/simon04/comfort0/level0l/parsergen/Level0LParserTest.java	(revision 35284)
@@ -2,5 +2,5 @@
 
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertThat;
 
 import java.io.StringReader;
@@ -12,9 +12,15 @@
     @Test
     public void testNode() throws Exception {
-        final NodeData node = new Level0LParser(new StringReader("node 298884272: 54.0901447, 12.2516513\n")).node();
+        final String level0l = "" +
+                "node 298884272: 54.0901447, 12.2516513\n" +
+                "  name = Neu Broderstorf\n" +
+                "  traffic_sign = city_limit\n";
+        final NodeData node = new Level0LParser(new StringReader(level0l)).node();
         assertThat(node.getId(), is(298884272L));
         assertThat(node.getCoor().lat(), is(54.0901447));
         assertThat(node.getCoor().lon(), is(12.2516513));
-
+        assertThat(node.getKeys().size(), is(2));
+        assertThat(node.getKeys().get("name"), is("Neu Broderstorf"));
+        assertThat(node.getKeys().get("traffic_sign"), is("city_limit"));
     }
 }
