diff --git a/MagickCore/MagickCore.h b/MagickCore/MagickCore.h
index e38dc64..4621d76 100644
--- a/MagickCore/MagickCore.h
+++ b/MagickCore/MagickCore.h
@@ -87,6 +87,7 @@
 #include "MagickCore/deprecate.h"
 #include "MagickCore/display.h"
 #include "MagickCore/distort.h"
+#include "MagickCore/distribute-cache.h"
 #include "MagickCore/draw.h"
 #include "MagickCore/effect.h"
 #include "MagickCore/enhance.h"
diff --git a/MagickCore/Makefile.am b/MagickCore/Makefile.am
index 473b7b6..16e919e 100644
--- a/MagickCore/Makefile.am
+++ b/MagickCore/Makefile.am
@@ -123,6 +123,9 @@
 	MagickCore/display-private.h \
 	MagickCore/distort.c \
 	MagickCore/distort.h \
+	MagickCore/distribute-cache.c \
+	MagickCore/distribute-cache.h \
+	MagickCore/distribute-cache-private.h \
 	MagickCore/draw.c \
 	MagickCore/draw.h \
 	MagickCore/draw-private.h \
@@ -332,6 +335,7 @@
 	MagickCore/deprecate.h \
 	MagickCore/display.h \
 	MagickCore/distort.h \
+	MagickCore/distribute-cache.h \
 	MagickCore/draw.h \
 	MagickCore/effect.h \
 	MagickCore/enhance.h \
@@ -416,6 +420,7 @@
  	MagickCore/delegate-private.h \
 	MagickCore/delegate-private.h \
 	MagickCore/display-private.h \
+	MagickCore/distribute-cache-private.h \
 	MagickCore/draw-private.h \
 	MagickCore/exception-private.h \
 	MagickCore/fx-private.h \
diff --git a/MagickCore/cache-private.h b/MagickCore/cache-private.h
index cb2b3ec..6ebe155 100644
--- a/MagickCore/cache-private.h
+++ b/MagickCore/cache-private.h
@@ -24,13 +24,13 @@
 
 #include <time.h>
 #include "MagickCore/cache.h"
+#include "MagickCore/distribute-cache.h"
+#include "MagickCore/distribute-cache-private.h"
 #include "MagickCore/pixel.h"
 #include "MagickCore/random_.h"
 #include "MagickCore/thread-private.h"
 #include "MagickCore/semaphore.h"
 
-#define MaxNumberDistributedCacheClients  32
-
 typedef void
   *Cache;
 
@@ -102,17 +102,6 @@
     destroy_pixel_handler;
 } CacheMethods;
 
-typedef struct _DistributedCacheInfo
-{
-#if defined(MAGICKCORE_HAVE_SOCKET)
-  int
-    server;
-#endif
-
-  size_t
-    session;
-} DistributedCacheInfo;
-
 typedef struct _NexusInfo
    NexusInfo;
 
@@ -190,7 +179,7 @@
   ssize_t
     number_connections;
 
-  DistributedCacheInfo
+  DistributeCacheInfo
     connection[MaxNumberDistributedCacheClients];
 
   MagickBooleanType
diff --git a/MagickCore/cache.c b/MagickCore/cache.c
index c4aac1d..0a44b11 100644
--- a/MagickCore/cache.c
+++ b/MagickCore/cache.c
@@ -1112,131 +1112,6 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   D i s t r i b u t e d P i x e l C a c h e                                 %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  DistributedPixelCache() waits on the specified port for commands to
-%  create, read, update, or destroy a pixel cache.
-%
-%  The format of the DistributedPixelCache() method is:
-%
-%      void DistributedPixelCache(const size_t port)
-%
-%  A description of each parameter follows:
-%
-%    o port: connect the distributed pixel cache at this port.
-%
-*/
-MagickExport void DistributedPixelCache(const size_t port)
-{
-#if defined(MAGICKCORE_HAVE_SOCKET)
-  char
-    buffer[MaxTextExtent];
-
-  int
-    cache_socket,
-    cache_client,
-    status;
-
-  socklen_t
-    length,
-    one;
-
-  ssize_t
-    count;
-
-  struct sockaddr_in
-    address;
-
-  cache_socket=socket(AF_INET,SOCK_STREAM,0);
-  if (cache_socket == -1)
-    {
-      perror("Distributed pixel cache: server socket");
-      exit(1);
-    }
-  one=1;
-  status=setsockopt(cache_socket,SOL_SOCKET,SO_REUSEADDR,&one,(socklen_t)
-    sizeof(one));
-  if (status == -1)
-    {
-      perror("Distributed pixel cache: server setsockopt");
-      exit(1);
-    }
-  (void) ResetMagickMemory(&address,0,sizeof(address));
-  address.sin_family=AF_INET;
-  address.sin_port=htons(port);
-  address.sin_addr.s_addr=INADDR_ANY;
-  status=bind(cache_socket,(struct sockaddr *) &address,(socklen_t)
-    sizeof(address));
-  if (status == -1)
-    {
-      perror("Distributed pixel cache: server bind");
-      exit(1);
-    }
-  status=listen(cache_socket,5);
-  if (status == -1)
-    {
-      perror("Distributed pixel cache: server listen");
-      exit(1);
-    }
-  (void) fprintf(stdout,
-    "Distributed pixel cache server:  waiting for client on port %d\n",(int)
-    port);
-  (void) fflush(stdout);
-  for ( ; ; )
-  {
-    length=(socklen_t) sizeof(address);
-    cache_client=accept(cache_socket,(struct sockaddr *) &address,&length);
-    (void) fprintf(stdout,"Connection from (%s, %d)\n",
-      inet_ntoa(address.sin_addr),(int) ntohs(address.sin_port));
-    count=recv(cache_client,buffer,1,0);
-    buffer[count]='\0';
-    switch (*buffer)
-    {
-      case 'c':
-      {
-        /*
-          Create cache.
-        */
-        break;
-      }
-      case 'r':
-      {
-        /*
-          Rad cache.
-        */
-        break;
-      }
-      case 'u':
-      {
-        /*
-          Update cache.
-        */
-        break;
-      }
-      case 'd':
-      {
-        /*
-          Delete cache.
-        */
-        break;
-      }
-    }
-  }
-#else
-  (void) ThrowMagickException(exception,GetMagickModule(),MissingDelegateError,
-    "DelegateLibrarySupportNotBuiltIn","'%s' (socket)",image_info->filename);
-#endif
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
 +   D e s t r o y I m a g e P i x e l C a c h e                               %
 %                                                                             %
 %                                                                             %
diff --git a/MagickCore/cache.h b/MagickCore/cache.h
index c2f5ad6..8c2311c 100644
--- a/MagickCore/cache.h
+++ b/MagickCore/cache.h
@@ -67,7 +67,6 @@
     const size_t,ExceptionInfo *) magick_hot_spot;
 
 extern MagickExport void
-  DistributedPixelCache(const size_t),
   *GetAuthenticMetacontent(const Image *);
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/MagickCore/distribute-cache-private.h b/MagickCore/distribute-cache-private.h
new file mode 100644
index 0000000..fc87da6
--- /dev/null
+++ b/MagickCore/distribute-cache-private.h
@@ -0,0 +1,38 @@
+/*
+  Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization
+  dedicated to making software imaging solutions freely available.
+  
+  You may not use this file except in compliance with the License.
+  obtain a copy of the License at
+  
+    http://www.imagemagick.org/script/license.php
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+  MagickCore distributed cache private methods.
+*/
+#ifndef _MAGICKCORE_DISTRIBUTE_CACHE_PRIVATE_H
+#define _MAGICKCORE_DISTRIBUTE_CACHE_PRIVATE_H
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+#define MaxNumberDistributedCacheClients  32
+
+typedef struct _DistributeCacheInfo
+{
+#if defined(MAGICKCORE_HAVE_SOCKET)
+  int
+    server;
+#endif
+
+  size_t
+    session;
+} DistributeCacheInfo;
+
+#endif
diff --git a/MagickCore/distribute-cache.c b/MagickCore/distribute-cache.c
new file mode 100644
index 0000000..15a2011
--- /dev/null
+++ b/MagickCore/distribute-cache.c
@@ -0,0 +1,185 @@
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%    DDDD    IIIII   SSSSS  TTTTT  RRRR   IIIII  BBBB   U   U  TTTTT  EEEEE   %
+%    D   D     I     SS       T    R   R    I    B   B  U   U    T    E       %
+%    D   D     I      SSS     T    RRRR     I    BBBB   U   U    T    EEE     %
+%    D   D     I        SS    T    R R      I    B   B  U   U    T    E       %
+%    DDDDA   IIIII   SSSSS    T    R  R   IIIII  BBBB    UUU     T    EEEEE   %
+%                                                                             %
+%                      CCCC   AAA    CCCC  H   H  EEEEE                       %
+%                     C      A   A  C      H   H  E                           %
+%                     C      AAAAA  C      HHHHH  EEE                         %
+%                     C      A   A  C      H   H  E                           %
+%                      CCCC  A   A   CCCC  H   H  EEEEE                       %
+%                                                                             %
+%                                                                             %
+%                 MagickCore Distributed Pixel Cache Methods                  %
+%                                                                             %
+%                              Software Design                                %
+%                                John Cristy                                  %
+%                                January 2013                                 %
+%                                                                             %
+%                                                                             %
+%  Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization      %
+%  dedicated to making software imaging solutions freely available.           %
+%                                                                             %
+%  You may not use this file except in compliance with the License.  You may  %
+%  obtain a copy of the License at                                            %
+%                                                                             %
+%    http://www.imagemagick.org/script/license.php                            %
+%                                                                             %
+%  Unless required by applicable law or agreed to in writing, software        %
+%  distributed under the License is distributed on an "AS IS" BASIS,          %
+%  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   %
+%  See the License for the specific language governing permissions and        %
+%  limitations under the License.                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% A distributed pixel cache is an extension of the traditional pixel cache
+% available on a single host.  The distributed pixel cache may span multiple
+% servers so that it can grow in size and transactional capacity to support
+% very large images. Start up the pixel cache server on one or more machines.
+% When you read or operate on an image and the local pixel cache resources are
+% exhausted, ImageMagick contacts one or more of these remote pixel servers to
+% store or retrieve pixels.
+%
+*/
+
+/*
+  Include declarations.
+*/
+#include "MagickCore/studio.h"
+#include "MagickCore/memory_.h"
+#if defined(MAGICKCORE_HAVE_SOCKET)
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#endif
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
++   P i x e l C a c h e S e r v e r                                           %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  PixelCacheServer() waits on the specified port for commands to create, read,
+%  update, or destroy a pixel cache.
+%
+%  The format of the PixelCacheServer() method is:
+%
+%      void PixelCacheServer(const size_t port)
+%
+%  A description of each parameter follows:
+%
+%    o port: connect the distributed pixel cache at this port.
+%
+*/
+MagickExport void PixelCacheServer(const size_t port)
+{
+#if defined(MAGICKCORE_HAVE_SOCKET)
+  char
+    buffer[MaxTextExtent];
+
+  int
+    cache_socket,
+    cache_client,
+    status;
+
+  socklen_t
+    length,
+    one;
+
+  ssize_t
+    count;
+
+  struct sockaddr_in
+    address;
+
+  cache_socket=socket(AF_INET,SOCK_STREAM,0);
+  if (cache_socket == -1)
+    {
+      perror("Distributed pixel cache: server socket");
+      exit(1);
+    }
+  one=1;
+  status=setsockopt(cache_socket,SOL_SOCKET,SO_REUSEADDR,&one,(socklen_t)
+    sizeof(one));
+  if (status == -1)
+    {
+      perror("Distributed pixel cache: server setsockopt");
+      exit(1);
+    }
+  (void) ResetMagickMemory(&address,0,sizeof(address));
+  address.sin_family=AF_INET;
+  address.sin_port=htons(port);
+  address.sin_addr.s_addr=INADDR_ANY;
+  status=bind(cache_socket,(struct sockaddr *) &address,(socklen_t)
+    sizeof(address));
+  if (status == -1)
+    {
+      perror("Distributed pixel cache: server bind");
+      exit(1);
+    }
+  status=listen(cache_socket,5);
+  if (status == -1)
+    {
+      perror("Distributed pixel cache: server listen");
+      exit(1);
+    }
+  (void) fprintf(stdout,
+    "Distributed pixel cache server:  waiting for client on port %d\n",(int)
+    port);
+  (void) fflush(stdout);
+  for ( ; ; )
+  {
+    length=(socklen_t) sizeof(address);
+    cache_client=accept(cache_socket,(struct sockaddr *) &address,&length);
+    (void) fprintf(stdout,"Connection from (%s, %d)\n",
+      inet_ntoa(address.sin_addr),(int) ntohs(address.sin_port));
+    count=recv(cache_client,buffer,1,0);
+    buffer[count]='\0';
+    switch (*buffer)
+    {
+      case 'c':
+      {
+        /*
+          Create cache.
+        */
+        break;
+      }
+      case 'r':
+      {
+        /*
+          Read cache.
+        */
+        break;
+      }
+      case 'u':
+      {
+        /*
+          Update cache.
+        */
+        break;
+      }
+      case 'd':
+      {
+        /*
+          Delete cache.
+        */
+        break;
+      }
+    }
+  }
+#else
+  (void) ThrowMagickException(exception,GetMagickModule(),MissingDelegateError,
+    "DelegateLibrarySupportNotBuiltIn","'%s' (socket)",image_info->filename);
+#endif
+}
diff --git a/MagickCore/distribute-cache.h b/MagickCore/distribute-cache.h
new file mode 100644
index 0000000..6838e4d
--- /dev/null
+++ b/MagickCore/distribute-cache.h
@@ -0,0 +1,32 @@
+/*
+  Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization
+  dedicated to making software imaging solutions freely available.
+  
+  You may not use this file except in compliance with the License.
+  obtain a copy of the License at
+  
+    http://www.imagemagick.org/script/license.php
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+  MagickCore distributed cache methods.
+*/
+#ifndef _MAGICKCORE_DISTRIBUTE_CACHE_H
+#define _MAGICKCORE_DISTRIBUTE_CACHE_H
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+extern MagickExport void
+  PixelCacheServer(const size_t);
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
+
+#endif
diff --git a/MagickCore/magick-baseconfig.h b/MagickCore/magick-baseconfig.h
index 7903457..77969af 100644
--- a/MagickCore/magick-baseconfig.h
+++ b/MagickCore/magick-baseconfig.h
@@ -1524,6 +1524,9 @@
 /* Define to appropriate substitue if compiler does not have __func__ */
 /* #undef __func__ */
 
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
 /* Define to `int' if <sys/types.h> doesn't define. */
 /* #undef gid_t */
 
diff --git a/MagickCore/version.h b/MagickCore/version.h
index 8847b22..bfc731c 100644
--- a/MagickCore/version.h
+++ b/MagickCore/version.h
@@ -27,7 +27,7 @@
 */
 #define MagickPackageName "ImageMagick"
 #define MagickCopyright  "Copyright (C) 1999-2013 ImageMagick Studio LLC"
-#define MagickSVNRevision  "10535:10562"
+#define MagickSVNRevision  "10572:10583M"
 #define MagickLibVersion  0x700
 #define MagickLibVersionText  "7.0.0"
 #define MagickLibVersionNumber  8,0,0
diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c
index 2414829..0d3ebe3 100644
--- a/MagickWand/mogrify.c
+++ b/MagickWand/mogrify.c
@@ -46,8 +46,8 @@
 */
 #include "MagickWand/studio.h"
 #include "MagickWand/MagickWand.h"
-#include "MagickCore/image-private.h"
 #include "MagickWand/mogrify-private.h"
+#include "MagickCore/image-private.h"
 #include "MagickCore/monitor-private.h"
 #include "MagickCore/string-private.h"
 #include "MagickCore/thread-private.h"
@@ -152,7 +152,7 @@
       (void) SetLogEventMask(argv[++i]);
     if (LocaleCompare("-distribute-cache",option) == 0)
       {
-        DistributedPixelCache(StringToUnsignedLong(argv[++i]));
+        PixelCacheServer(StringToUnsignedLong(argv[++i]));
         exit(0);
       }
     if (LocaleCompare("-duration",option) == 0)
diff --git a/Makefile.in b/Makefile.in
index 24d043a..12354e9 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -432,7 +432,9 @@
 	MagickCore/delegate-private.h MagickCore/deprecate.c \
 	MagickCore/deprecate.h MagickCore/display.c \
 	MagickCore/display.h MagickCore/display-private.h \
-	MagickCore/distort.c MagickCore/distort.h MagickCore/draw.c \
+	MagickCore/distort.c MagickCore/distort.h \
+	MagickCore/distribute-cache.c MagickCore/distribute-cache.h \
+	MagickCore/distribute-cache-private.h MagickCore/draw.c \
 	MagickCore/draw.h MagickCore/draw-private.h \
 	MagickCore/effect.c MagickCore/effect.h MagickCore/enhance.c \
 	MagickCore/enhance.h MagickCore/exception.c \
@@ -561,6 +563,7 @@
 	MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-deprecate.lo \
 	MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-display.lo \
 	MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distort.lo \
+	MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo \
 	MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.lo \
 	MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-effect.lo \
 	MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-enhance.lo \
@@ -4077,6 +4080,9 @@
 	MagickCore/display-private.h \
 	MagickCore/distort.c \
 	MagickCore/distort.h \
+	MagickCore/distribute-cache.c \
+	MagickCore/distribute-cache.h \
+	MagickCore/distribute-cache-private.h \
 	MagickCore/draw.c \
 	MagickCore/draw.h \
 	MagickCore/draw-private.h \
@@ -4281,6 +4287,7 @@
 	MagickCore/deprecate.h \
 	MagickCore/display.h \
 	MagickCore/distort.h \
+	MagickCore/distribute-cache.h \
 	MagickCore/draw.h \
 	MagickCore/effect.h \
 	MagickCore/enhance.h \
@@ -4365,6 +4372,7 @@
  	MagickCore/delegate-private.h \
 	MagickCore/delegate-private.h \
 	MagickCore/display-private.h \
+	MagickCore/distribute-cache-private.h \
 	MagickCore/draw-private.h \
 	MagickCore/exception-private.h \
 	MagickCore/fx-private.h \
@@ -5343,6 +5351,9 @@
 MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distort.lo:  \
 	MagickCore/$(am__dirstamp) \
 	MagickCore/$(DEPDIR)/$(am__dirstamp)
+MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo:  \
+	MagickCore/$(am__dirstamp) \
+	MagickCore/$(DEPDIR)/$(am__dirstamp)
 MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.lo:  \
 	MagickCore/$(am__dirstamp) \
 	MagickCore/$(DEPDIR)/$(am__dirstamp)
@@ -6740,6 +6751,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-deprecate.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-display.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distort.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-effect.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-enhance.Plo@am__quote@
@@ -7285,6 +7297,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distort.lo `test -f 'MagickCore/distort.c' || echo '$(srcdir)/'`MagickCore/distort.c
 
+MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo: MagickCore/distribute-cache.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo -MD -MP -MF MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.Tpo -c -o MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo `test -f 'MagickCore/distribute-cache.c' || echo '$(srcdir)/'`MagickCore/distribute-cache.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.Tpo MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='MagickCore/distribute-cache.c' object='MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo `test -f 'MagickCore/distribute-cache.c' || echo '$(srcdir)/'`MagickCore/distribute-cache.c
+
 MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.lo: MagickCore/draw.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.lo -MD -MP -MF MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.Tpo -c -o MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.lo `test -f 'MagickCore/draw.c' || echo '$(srcdir)/'`MagickCore/draw.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.Tpo MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.Plo
diff --git a/config/config.h.in b/config/config.h.in
index 4bc3873..f3b4e1c 100644
--- a/config/config.h.in
+++ b/config/config.h.in
@@ -1043,6 +1043,9 @@
 /* Define to appropriate substitue if compiler does not have __func__ */
 #undef __func__
 
+/* Define to empty if `const' does not conform to ANSI C. */
+#undef const
+
 /* Define to `int' if <sys/types.h> doesn't define. */
 #undef gid_t
 
diff --git a/configure b/configure
index cfe36e4..235a684 100755
--- a/configure
+++ b/configure
@@ -3650,7 +3650,7 @@
 
 MAGICK_LIBRARY_VERSION_INFO=$MAGICK_LIBRARY_CURRENT:$MAGICK_LIBRARY_REVISION:$MAGICK_LIBRARY_AGE
 
-MAGICK_SVN_REVISION=10535:10562
+MAGICK_SVN_REVISION=10572:10583M
 
 
 
@@ -21884,9 +21884,123 @@
 interpval=$ac_cv_sys_interpreter
 
 
-# If the C compiler supports the keyword inline, do nothing. Otherwise
-# define inline to __inline__ or __inline if it accepts one of those,
-# otherwise define inline to be empty.
+#
+# Checks for language qualifiers and semantics.
+#
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether char is unsigned" >&5
+$as_echo_n "checking whether char is unsigned... " >&6; }
+if ${ac_cv_c_char_unsigned+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((char) -1) < 0)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_char_unsigned=no
+else
+  ac_cv_c_char_unsigned=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_char_unsigned" >&5
+$as_echo "$ac_cv_c_char_unsigned" >&6; }
+if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then
+  $as_echo "#define __CHAR_UNSIGNED__ 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
+$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
+if ${ac_cv_c_const+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+#ifndef __cplusplus
+  /* Ultrix mips cc rejects this sort of thing.  */
+  typedef int charset[2];
+  const charset cs = { 0, 0 };
+  /* SunOS 4.1.1 cc rejects this.  */
+  char const *const *pcpcc;
+  char **ppc;
+  /* NEC SVR4.0.2 mips cc rejects this.  */
+  struct point {int x, y;};
+  static struct point const zero = {0,0};
+  /* AIX XL C 1.02.0.0 rejects this.
+     It does not let you subtract one const X* pointer from another in
+     an arm of an if-expression whose if-part is not a constant
+     expression */
+  const char *g = "string";
+  pcpcc = &g + (g ? g-g : 0);
+  /* HPUX 7.0 cc rejects these. */
+  ++pcpcc;
+  ppc = (char**) pcpcc;
+  pcpcc = (char const *const *) ppc;
+  { /* SCO 3.2v4 cc rejects this sort of thing.  */
+    char tx;
+    char *t = &tx;
+    char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+    *t++ = 0;
+    if (s) return 0;
+  }
+  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
+    int x[] = {25, 17};
+    const int *foo = &x[0];
+    ++foo;
+  }
+  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+    typedef const int *iptr;
+    iptr p = 0;
+    ++p;
+  }
+  { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
+       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+    struct s { int j; const int *ap[3]; } bx;
+    struct s *b = &bx; b->j = 5;
+  }
+  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+    const int foo = 10;
+    if (!foo) return 0;
+  }
+  return !cs[0] && !zero.x;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_const=yes
+else
+  ac_cv_c_const=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
+$as_echo "$ac_cv_c_const" >&6; }
+if test $ac_cv_c_const = no; then
+
+$as_echo "#define const /**/" >>confdefs.h
+
+fi
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
 $as_echo_n "checking for inline... " >&6; }
 if ${ac_cv_c_inline+:} false; then :
@@ -21929,10 +22043,6 @@
     ;;
 esac
 
-
-# If the C compiler supports the keyword restrict, do nothing. Otherwise
-# define restrict to __restrict__ or __restrict if it accepts one of those,
-# otherwise define restrict to be empty.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
 $as_echo_n "checking for C/C++ restrict keyword... " >&6; }
 if ${ac_cv_c_restrict+:} false; then :
@@ -21979,6 +22089,40 @@
  ;;
  esac
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working volatile" >&5
+$as_echo_n "checking for working volatile... " >&6; }
+if ${ac_cv_c_volatile+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+volatile int x;
+int * volatile y = (int *) 0;
+return !x && !y;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_volatile=yes
+else
+  ac_cv_c_volatile=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5
+$as_echo "$ac_cv_c_volatile" >&6; }
+if test $ac_cv_c_volatile = no; then
+
+$as_echo "#define volatile /**/" >>confdefs.h
+
+fi
+
 
 # If words are stored with the most significant byte first (like
 # Motorola and SPARC CPUs), define `WORDS_BIGENDIAN'.
@@ -22866,42 +23010,6 @@
   fi
 
 
-# If the C type char is unsigned, define __CHAR_UNSIGNED__, unless the
-# C compiler predefines it.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether char is unsigned" >&5
-$as_echo_n "checking whether char is unsigned... " >&6; }
-if ${ac_cv_c_char_unsigned+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((char) -1) < 0)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_char_unsigned=no
-else
-  ac_cv_c_char_unsigned=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_char_unsigned" >&5
-$as_echo "$ac_cv_c_char_unsigned" >&6; }
-if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then
-  $as_echo "#define __CHAR_UNSIGNED__ 1" >>confdefs.h
-
-fi
-
-
 # Float_t and double_t are intended to be the the most efficient type.
 ac_fn_c_check_type "$LINENO" "float_t" "ac_cv_type_float_t" "#include <math.h>
 "