diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java
index 2f13a48fd236da0853d9189ab89db229ed45289a..d2c9ac5b36ad966e32ec903860afb26815ec3bd2 100644
--- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java
+++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java
@@ -192,12 +192,15 @@ public static ImageGalleryController getController(Case theCase) {
      * @param theCase The case.
      */
     static void shutDownController(Case theCase) {
+        ImageGalleryController controller = null;
         synchronized (controllersByCaseLock) {
             if (controllersByCase.containsKey(theCase.getName())) {
-                ImageGalleryController controller = controllersByCase.remove(theCase.getName());
-                controller.shutDown();
+                controller = controllersByCase.remove(theCase.getName());
             }
         }
+        if (controller != null) {
+            controller.shutDown();
+        }
     }
 
     /**
diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java
index 112c7ab6ec65b649e3b72ce0966d0aea75227868..534bdfc8c861ed160920104233971caad1004757 100644
--- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java
+++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java
@@ -105,8 +105,15 @@ public static DrawableFile create(Long fileID, boolean analyzed) throws TskCoreE
     protected DrawableFile(AbstractFile file, Boolean analyzed) {
         this.analyzed = new SimpleBooleanProperty(analyzed);
         this.file = file;
-
-        categoryManager = ImageGalleryController.getController(Case.getCurrentCase()).getCategoryManager();
+  
+        ImageGalleryController controllerForCase = ImageGalleryController.getController(Case.getCurrentCase());
+        if (controllerForCase != null) {
+            categoryManager = ImageGalleryController.getController(Case.getCurrentCase()).getCategoryManager();
+        } else {
+            // If getting the controller fails it means the case is currently closing. No need to 
+            // print an error.
+            categoryManager = null;
+        }
     }
 
     public abstract boolean isVideo();
@@ -246,6 +253,12 @@ public SimpleObjectProperty<TagName> categoryProperty() {
      * Update the category property.
      */
     private void updateCategory() {
+        // This only happens when a DrawableFile is created while the case is closing. No need
+        // to display the error message.
+        if (categoryManager == null) {
+            return;
+        }
+        
         try {
             List<ContentTag> contentTags = getContentTags();
             TagName tag = null;