Index: trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	(revision 3885)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	(revision 3886)
@@ -77,4 +77,8 @@
                 dirs.add(a[1]);
             }
+        }
+        String sourceDir = ref.source.getLocalSourceDir();
+        if (sourceDir != null) {
+            dirs.add(sourceDir);
         }
         ImageIcon i = ImageProvider.getIfAvailable(dirs, "mappaint."+styleName, null, ref.iconName, ref.source.zipIcons, sanitize);
Index: trunk/src/org/openstreetmap/josm/gui/preferences/SourceEntry.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/SourceEntry.java	(revision 3885)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/SourceEntry.java	(revision 3886)
@@ -2,4 +2,5 @@
 package org.openstreetmap.josm.gui.preferences;
 
+import java.io.File;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -122,3 +123,13 @@
         return true;
     }
+
+    public String getLocalSourceDir() {
+        if (!isLocal())
+            return null;
+        File f = new File(url);
+        File dir = f.getParentFile();
+        if (dir == null)
+            return null;
+        return dir.getPath();
+    }
 }
