Index: trunk/src/org/openstreetmap/josm/tools/ListenableWeakReference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/ListenableWeakReference.java	(revision 18211)
+++ trunk/src/org/openstreetmap/josm/tools/ListenableWeakReference.java	(revision 18212)
@@ -56,15 +56,15 @@
     private static void clean() {
         boolean running = true;
-        try {
-            while (running) {
+        while (running) {
+            try {
                 Reference<? extends Object> ref = GLOBAL_QUEUE.remove();
                 if (ref instanceof ListenableWeakReference) {
                     ((ListenableWeakReference<?>) ref).onDereference();
                 }
+            } catch (InterruptedException e) {
+                running = false;
+                BugReport.intercept(e).warn();
+                Thread.currentThread().interrupt();
             }
-        } catch (InterruptedException e) {
-            running = false;
-            BugReport.intercept(e).warn();
-            Thread.currentThread().interrupt();
         }
     }
