diff --git a/MagickCore/cache.c b/MagickCore/cache.c
index b3d65ef..6da2da0 100644
--- a/MagickCore/cache.c
+++ b/MagickCore/cache.c
@@ -1221,7 +1221,7 @@
     case MemoryCache:
     {
       if (cache_info->mapped == MagickFalse)
-        cache_info->pixels=(Quantum *) RelinquishMagickMemory(
+        cache_info->pixels=(Quantum *) RelinquishAlignedMemory(
           cache_info->pixels);
       else
         cache_info->pixels=(Quantum *) UnmapBlob(cache_info->pixels,
@@ -1331,7 +1331,7 @@
 static inline void RelinquishCacheNexusPixels(NexusInfo *nexus_info)
 {
   if (nexus_info->mapped == MagickFalse)
-    (void) RelinquishMagickMemory(nexus_info->cache);
+    (void) RelinquishAlignedMemory(nexus_info->cache);
   else
     (void) UnmapBlob(nexus_info->cache,(size_t) nexus_info->length);
   nexus_info->cache=(Quantum *) NULL;
@@ -3675,7 +3675,7 @@
 static inline void AllocatePixelCachePixels(CacheInfo *cache_info)
 {
   cache_info->mapped=MagickFalse;
-  cache_info->pixels=(Quantum *) AcquireQuantumMemory(1,(size_t)
+  cache_info->pixels=(Quantum *) AcquireAlignedMemory(1,(size_t)
     cache_info->length);
   if (cache_info->pixels == (Quantum *) NULL)
     {
@@ -4740,7 +4740,7 @@
   if (nexus_info->length != (MagickSizeType) ((size_t) nexus_info->length))
     return(MagickFalse);
   nexus_info->mapped=MagickFalse;
-  nexus_info->cache=(Quantum *) AcquireMagickMemory((size_t)
+  nexus_info->cache=(Quantum *) AcquireAlignedMemory(1,(size_t)
     nexus_info->length);
   if (nexus_info->cache == (Quantum *) NULL)
     {
diff --git a/MagickCore/memory-private.h b/MagickCore/memory-private.h
index d711a20..6b56223 100644
--- a/MagickCore/memory-private.h
+++ b/MagickCore/memory-private.h
@@ -22,7 +22,11 @@
 extern "C" {
 #endif
 
-#define CACHE_LINE_SIZE  (16*sizeof(void *))
+#if defined(MAGICK_TARGET_CPU) && (MAGICK_TARGET_CPU == powerpc)
+#  define CACHE_LINE_SIZE (16*sizeof(void *))
+#else
+#  define CACHE_LINE_SIZE (8*sizeof(void *))
+#endif
 #define CacheAlign(size)  ((size) < CACHE_LINE_SIZE ? CACHE_LINE_SIZE : (size))
 
 #if defined(__cplusplus) || defined(c_plusplus)