diff --git a/magick/cache.c b/magick/cache.c
index 8721738..a1c67cf 100644
--- a/magick/cache.c
+++ b/magick/cache.c
@@ -407,10 +407,10 @@
       break;
     if (PixelIntensityToQuantum(r) > ((Quantum) QuantumRange/2))
       {
-        q->red=p->red;
-        q->green=p->green;
-        q->blue=p->blue;
-        q->opacity=p->opacity;
+        SetRedSample(q,GetRedSample(p));
+        SetGreenSample(q,GetGreenSample(p));
+        SetBlueSample(q,GetBlueSample(p));
+        SetOpacitySample(q,GetOpacitySample(p));
         if (cache_info->active_index_channel != MagickFalse)
           nexus_indexes[i]=indexes[i];
       }
@@ -2759,11 +2759,10 @@
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   assert(image->cache != (Cache) NULL);
-  cache_info=GetImagePixelCache(image,MagickTrue,exception);
+  cache_info=(CacheInfo *) GetImagePixelCache(image,MagickTrue,exception);
   assert(cache_info->signature == MagickSignature);
   *length=0;
-  if ((cache_info->storage_class != MemoryCache) &&
-      (cache_info->storage_class != MapCache))
+  if ((cache_info->type != MemoryCache) && (cache_info->type != MapCache))
     return((void *) NULL);
   *length=cache_info->length;
   return((void *) cache_info->pixels);