Index: /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java	(revision 18728)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java	(revision 18729)
@@ -178,10 +178,14 @@
         // This listener gets called _prior to_ the reorder event. If we do not delay the execution of the
         // model update, then the image will change instead of remaining the same.
-        this.layers.getModel().addChangeListener(l -> MainApplication.worker.execute(() -> GuiHelper.runInEDT(() -> {
-            Component selected = this.layers.getSelectedComponent();
-            if (selected instanceof MoveImgDisplayPanel) {
-                ((MoveImgDisplayPanel<?>) selected).fireModelUpdate();
-            }
-        })));
+        this.layers.getModel().addChangeListener(l -> {
+            // We need to check to see whether or not the worker is shut down. See #22922 for details.
+            if (!MainApplication.worker.isShutdown()) {
+                MainApplication.worker.execute(() -> GuiHelper.runInEDT(() -> {
+                    Component selected = this.layers.getSelectedComponent();
+                    if (selected instanceof MoveImgDisplayPanel) {
+                        ((MoveImgDisplayPanel<?>) selected).fireModelUpdate();
+                    }
+                }));
+            }});
     }
 
