diff --git a/magick/cache.c b/magick/cache.c
index f4b7602..4f39ee1 100644
--- a/magick/cache.c
+++ b/magick/cache.c
@@ -1808,6 +1808,8 @@
MagickOffsetType
offset;
+ if (cache_info->type == PingCache)
+ return(MagickTrue);
offset=(MagickOffsetType) nexus_info->region.y*cache_info->columns+
nexus_info->region.x;
if (nexus_info->pixels != (cache_info->pixels+offset))
@@ -4081,6 +4083,16 @@
cache_info->columns=image->columns;
cache_info->active_index_channel=((image->storage_class == PseudoClass) ||
(image->colorspace == CMYKColorspace)) ? MagickTrue : MagickFalse;
+ if (image->ping != MagickFalse)
+ {
+ cache_info->storage_class=image->storage_class;
+ cache_info->colorspace=image->colorspace;
+ cache_info->type=PingCache;
+ cache_info->pixels=(PixelPacket *) NULL;
+ cache_info->indexes=(IndexPacket *) NULL;
+ cache_info->length=0;
+ return(MagickTrue);
+ }
number_pixels=(MagickSizeType) cache_info->columns*cache_info->rows;
packet_size=sizeof(PixelPacket);
if (cache_info->active_index_channel != MagickFalse)
@@ -5036,8 +5048,8 @@
if (cache_info->type == UndefinedCache)
return((PixelPacket *) NULL);
nexus_info->region=(*region);
- if ((cache_info->type != DiskCache) && (image->clip_mask == (Image *) NULL) &&
- (image->mask == (Image *) NULL))
+ if ((cache_info->type != DiskCache) && (cache_info->type != PingCache) &&
+ (image->clip_mask == (Image *) NULL) && (image->mask == (Image *) NULL))
{
long
x,