Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	(revision 3929)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	(revision 3930)
@@ -6,4 +6,5 @@
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -147,5 +148,26 @@
             if (entry.url.toLowerCase().endsWith(".mapcss")) {
                 return new MapCSSStyleSource(entry);
+            }
+            if (entry.url.toLowerCase().endsWith(".xml")) {
+                return new XmlStyleSource(entry);
             } else {
+                InputStreamReader reader = new InputStreamReader(in);
+                WHILE: while (true) {
+                    int c = reader.read();
+                    switch (c) {
+                        case -1:
+                            break WHILE;
+                        case ' ':
+                        case '\t':
+                        case '\n':
+                        case '\r':
+                            continue;
+                        case '<':
+                            return new XmlStyleSource(entry);
+                        default:
+                            return new MapCSSStyleSource(entry);
+                    }
+                }
+                System.err.println("Warning: Could not detect style type. Using default (xml).");
                 return new XmlStyleSource(entry);
             }
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java	(revision 3929)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java	(revision 3930)
@@ -1175,4 +1175,8 @@
                             } else if ("shortdescription".equals(key) && last.title == null) {
                                 last.title = value;
+                            } else if ((lang + "title").equals(key) && last.title == null) {
+                                last.title = value;
+                            } else if ("title".equals(key) && last.title == null) {
+                                last.title = value;
                             } else if ("name".equals(key) && last.name == null) {
                                 last.name = value;
