diff --git a/imagen/image.py b/imagen/image.py
index <HASH>..<HASH> 100644
--- a/imagen/image.py
+++ b/imagen/image.py
@@ -404,10 +404,9 @@ class FileImage(GenericImage):
 
     def __call__(self,**params_to_override):
         # Cache image to avoid channel_data being deleted before channel-specific processing completes.
-        params_to_override['cache_image']=True
         p = param.ParamOverrides(self,params_to_override)
 
-        if not ( p.cache_image and (p._image is not None) ):
+        if not (p.cache_image and (p._image is not None)):
             self._cached_average = super(FileImage,self).__call__(**params_to_override)
 
             self._channel_data = self._process_channels(p,**params_to_override)
@@ -422,6 +421,15 @@ class FileImage(GenericImage):
         return self._cached_average
 
 
+    def set_matrix_dimensions(self, *args):
+        """
+        Subclassed to delete the cached image when matrix dimensions are
+        changed.
+        """
+        self._image = None
+        super(FileImage, self).set_matrix_dimensions(*args)
+
+
     def _get_image(self,p):
         file_, ext = splitext(p.filename)
         npy = (ext.lower() == ".npy")
Fixed bug in FileImage caching, when matrix dimensions are changed

When a cached FileImage was first viewed using the default matrix
dimensions and then installed on a GeneratorSheet with different
dimensions, it would continue to present the cached image with
wrong dimensions.