Index: /applications/editors/josm/plugins/print/build.xml
===================================================================
--- /applications/editors/josm/plugins/print/build.xml	(revision 27065)
+++ /applications/editors/josm/plugins/print/build.xml	(revision 27066)
@@ -30,5 +30,5 @@
 <project name="print" default="dist" basedir=".">
     <!-- enter the SVN commit message -->
-    <property name="commit.message" value="Release successfully tested with JOSM version 4064 (Ubuntu 11.10)"/>
+    <property name="commit.message" value="Prints more types of layers correctly now, tested with PicLayer"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
     <property name="plugin.main.version" value="4064"/>
Index: /applications/editors/josm/plugins/print/src/org/openstreetmap/josm/plugins/print/PrintableMapView.java
===================================================================
--- /applications/editors/josm/plugins/print/src/org/openstreetmap/josm/plugins/print/PrintableMapView.java	(revision 27065)
+++ /applications/editors/josm/plugins/print/src/org/openstreetmap/josm/plugins/print/PrintableMapView.java	(revision 27066)
@@ -49,5 +49,4 @@
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
-import org.openstreetmap.josm.gui.layer.ImageryLayer;
 
 /**
@@ -162,17 +161,16 @@
         List<Layer> visibleLayers = getVisibleLayersInZOrder();
         for (Layer l : visibleLayers) {
-            if (l instanceof ImageryLayer) {
-                try {
-                    /* This statement may have all kinds of unwanted side effects
-                     * but ImageryLayers heavily depend on Main.map.mapView. */
+            try {
+                if (! (l instanceof OsmDataLayer)) {
+                    /* OsmDataLayer does not need this.*/
+                    
+                    /* This manipulations may have all kinds of unwanted side effects
+                     * but many Layer implementations heavily depend on Main.map.mapView. */
                     Main.map.mapView = this;
-                    l.paint(g2d, this, box);
                 }
-                finally {
-                    Main.map.mapView = mapView;
-                }
+                l.paint(g2d, this, box);
             }
-            else {
-                l.paint(g2d, this, box);
+            finally {
+                Main.map.mapView = mapView;
             }
         }
