...
diff --git a/MagickCore/cache.c b/MagickCore/cache.c
index f50c814..49edbde 100644
--- a/MagickCore/cache.c
+++ b/MagickCore/cache.c
@@ -3401,6 +3401,7 @@
       if (((cache_info->type == UndefinedCache) && (status != MagickFalse)) ||
           (cache_info->type == MemoryCache))
         {
+          status=MagickTrue;
           cache_info->mapped=MagickFalse;
           cache_info->pixels=(Quantum *) MagickAssumeAligned(
             AcquireAlignedMemory(1,(size_t) cache_info->length));
@@ -3411,7 +3412,6 @@
               /*
                 Create memory pixel cache.
               */
-              status=MagickTrue;
               cache_info->type=MemoryCache;
               cache_info->metacontent=(void *) NULL;
               if (cache_info->metacontent_extent != 0)
@@ -3470,6 +3470,7 @@
               /*
                 Create a distributed pixel cache.
               */
+              status=MagickTrue;
               cache_info->type=DistributedCache;
               cache_info->server_info=server_info;
               (void) FormatLocaleString(cache_info->cache_filename,
@@ -3500,11 +3501,10 @@
                   (void) LogMagickEvent(CacheEvent,GetMagickModule(),"%s",
                     message);
                 }
-              return(MagickTrue);
+              return(status);
             }
         }
       RelinquishMagickResource(DiskResource,cache_info->length);
-      cache_info->type=UndefinedCache;
       (void) ThrowMagickException(exception,GetMagickModule(),CacheError,
         "CacheResourcesExhausted","`%s'",image->filename);
       return(MagickFalse);
@@ -3517,7 +3517,6 @@
   if (OpenPixelCacheOnDisk(cache_info,mode) == MagickFalse)
     {
       RelinquishMagickResource(DiskResource,cache_info->length);
-      cache_info->type=UndefinedCache;
       ThrowFileException(exception,CacheError,"UnableToOpenPixelCache",
         image->filename);
       return(MagickFalse);
@@ -3526,7 +3525,6 @@
     cache_info->length);
   if (status == MagickFalse)
     {
-      cache_info->type=UndefinedCache;
       ThrowFileException(exception,CacheError,"UnableToExtendCache",
         image->filename);
       return(MagickFalse);
@@ -3588,8 +3586,6 @@
                   (void) LogMagickEvent(CacheEvent,GetMagickModule(),"%s",
                     message);
                 }
-              if (status == MagickFalse)
-                cache_info->type=UndefinedCache;
               return(status);
             }
         }
@@ -3614,8 +3610,6 @@
         cache_info->number_channels,format);
       (void) LogMagickEvent(CacheEvent,GetMagickModule(),"%s",message);
     }
-  if (status == MagickFalse)
-    cache_info->type=UndefinedCache;
   return(status);
 }