Index: src/org/openstreetmap/josm/gui/MapFrame.java
===================================================================
--- src/org/openstreetmap/josm/gui/MapFrame.java	(revision 1432)
+++ src/org/openstreetmap/josm/gui/MapFrame.java	(working copy)
@@ -143,6 +143,13 @@
 
         // remove menu entries
         Main.main.menu.viewMenu.setVisible(false);
+        
+        // MapFrame gets destroyed when the last layer is removed, but the status line background
+        // thread that collects the information doesn't get destroyed automatically.
+        if(statusLine.thread == null) return;
+        try {
+            statusLine.thread.interrupt();
+        } catch (Exception e) {}
     }
 
     public Action getDefaultButtonAction() {
Index: src/org/openstreetmap/josm/gui/MapStatus.java
===================================================================
--- src/org/openstreetmap/josm/gui/MapStatus.java	(revision 1432)
+++ src/org/openstreetmap/josm/gui/MapStatus.java	(working copy)
@@ -100,6 +100,12 @@
     ImageLabel distText = new ImageLabel("dist", tr("The length of the new way segment being drawn."), 8);
 
     /**
+     * This is the thread that runs in the background and collects the information displayed.
+     * It gets destroyed by MapFrame.java/destroy() when the MapFrame itself is destroyed.
+     */
+    public Thread thread;
+    
+    /**
      * The collector class that waits for notification and then update
      * the display objects.
      *
@@ -293,7 +299,9 @@
 
         // The background thread
         final Collector collector = new Collector(mapFrame);
-        new Thread(collector).start();
+        thread = new Thread(collector, "Map Status Collector");
+        thread.setDaemon(true);
+        thread.start();
 
         // Listen to keyboard/mouse events for pressing/releasing alt key and
         // inform the collector.
@@ -344,7 +352,7 @@
     public String helpTopic() {
         return "Statusline";
     }
-    
+        
     @Override
     public void addMouseListener(MouseListener ml) {
         //super.addMouseListener(ml);
Index: src/org/openstreetmap/josm/tools/XmlObjectParser.java
===================================================================
--- src/org/openstreetmap/josm/tools/XmlObjectParser.java	(revision 1432)
+++ src/org/openstreetmap/josm/tools/XmlObjectParser.java	(working copy)
@@ -196,7 +196,7 @@
     }
 
     public Iterable<Object> start(final Reader in) {
-        new Thread(){
+        new Thread("XML Reader"){
             @Override public void run() {
                 try {
                     SAXParserFactory.newInstance().newSAXParser().parse(new InputSource(in), parser);
