Index: trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java	(revision 8833)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java	(revision 8835)
@@ -888,7 +888,9 @@
                     active = editEntryDialog.active();
                 }
-                activeSourcesModel.addSource(new SourceEntry(
+                final SourceEntry entry = new SourceEntry(
                         editEntryDialog.getURL(),
-                        null, editEntryDialog.getTitle(), active));
+                        null, editEntryDialog.getTitle(), active);
+                entry.title = getTitleForSourceEntry(entry);
+                activeSourcesModel.addSource(entry);
                 activeSourcesModel.fireTableDataChanged();
             }
@@ -951,7 +953,5 @@
                 if (e.title != null || !"".equals(editEntryDialog.getTitle())) {
                     e.title = editEntryDialog.getTitle();
-                    if ("".equals(e.title)) {
-                        e.title = null;
-                    }
+                    e.title = getTitleForSourceEntry(e);
                 }
                 e.url = editEntryDialog.getURL();
@@ -1657,3 +1657,7 @@
                 );
     }
+
+    protected String getTitleForSourceEntry(SourceEntry entry) {
+        return "".equals(entry.title) ? null : entry.title;
+    }
 }
Index: trunk/src/org/openstreetmap/josm/gui/preferences/map/MapPaintPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/map/MapPaintPreference.java	(revision 8833)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/map/MapPaintPreference.java	(revision 8835)
@@ -21,4 +21,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.mappaint.MapPaintStyles;
+import org.openstreetmap.josm.gui.mappaint.mapcss.MapCSSStyleSource;
 import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
 import org.openstreetmap.josm.gui.preferences.PreferenceSettingFactory;
@@ -160,4 +161,21 @@
         }
 
+        @Override
+        protected String getTitleForSourceEntry(SourceEntry entry) {
+            final String title = getTitleFromSourceEntry(entry);
+            return title != null ? title : super.getTitleForSourceEntry(entry);
+        }
+    }
+
+    public static String getTitleFromSourceEntry(SourceEntry entry) {
+        try {
+            final MapCSSStyleSource css = new MapCSSStyleSource(entry);
+            css.loadStyleSource();
+            if (css.title != null && !css.title.isEmpty()) {
+                return css.title;
+            }
+        } catch (RuntimeException ignore) {
+        }
+        return null;
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/preferences/validator/ValidatorTagCheckerRulesPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/validator/ValidatorTagCheckerRulesPreference.java	(revision 8833)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/validator/ValidatorTagCheckerRulesPreference.java	(revision 8835)
@@ -25,4 +25,5 @@
 import org.openstreetmap.josm.gui.preferences.SubPreferenceSetting;
 import org.openstreetmap.josm.gui.preferences.TabPreferenceSetting;
+import org.openstreetmap.josm.gui.preferences.map.MapPaintPreference;
 
 /**
@@ -114,4 +115,10 @@
             }
         }
+
+        @Override
+        protected String getTitleForSourceEntry(SourceEntry entry) {
+            final String title = MapPaintPreference.getTitleFromSourceEntry(entry);
+            return title != null ? title : super.getTitleForSourceEntry(entry);
+        }
     }
     
