Index: trunk/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java	(revision 1280)
+++ trunk/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java	(revision 1281)
@@ -50,3 +50,7 @@
         });
     }
+    
+    public void setIndeterminate(boolean newValue) {
+        progressBar.setIndeterminate(newValue);
+    }
 }
Index: trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 1280)
+++ trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 1281)
@@ -222,7 +222,19 @@
     @Override public void mergeFrom(final Layer from) {
         final MergeVisitor visitor = new MergeVisitor(data,((OsmDataLayer)from).data);
-        for (final OsmPrimitive osm : ((OsmDataLayer)from).data.allPrimitives())
+        int i=0;
+        int max = ((OsmDataLayer)from).data.allPrimitives().size();
+
+        System.out.format("Add/Merge data:");
+        
+        for (final OsmPrimitive osm : ((OsmDataLayer)from).data.allPrimitives()) {
+            i++;
+            if(i%100 == 0) {
+                double perc = (((double)i) / ((double)max) * 100.0);
+                System.out.format(" " + (int)perc + "%%");
+            }
             osm.visit(visitor);
+        }
         visitor.fixReferences();
+        System.out.println("");
 
         // copy the merged layer's data source info
Index: trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java	(revision 1280)
+++ trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java	(revision 1281)
@@ -93,5 +93,7 @@
             Main.pleaseWaitDlg.progress.setValue(0);
             Main.pleaseWaitDlg.currentAction.setText(tr("Contacting OSM Server..."));
+            Main.pleaseWaitDlg.setIndeterminate(true); 
             final InputStream in = getInputStream("map?bbox="+lon1+","+lat1+","+lon2+","+lat2, Main.pleaseWaitDlg);
+            Main.pleaseWaitDlg.setIndeterminate(false); 
             if (in == null)
                 return null;
Index: trunk/src/org/openstreetmap/josm/io/OsmReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmReader.java	(revision 1280)
+++ trunk/src/org/openstreetmap/josm/io/OsmReader.java	(revision 1281)
@@ -501,4 +501,7 @@
              throw new SAXException(e1);
         }
+            
+          Main.pleaseWaitDlg.currentAction.setText(tr("Prepare OSM data..."));
+          Main.pleaseWaitDlg.setIndeterminate(true); 
 
           System.out.println("");
@@ -522,5 +525,7 @@
                     o.id = 0;
 
-          System.out.println("File loaded!");
+          System.out.println("Data loaded!");
+          Main.pleaseWaitDlg.setIndeterminate(false); 
+          Main.pleaseWaitDlg.progress.setValue(0); 
           
           return osm;
