diff --git a/MagickCore/Makefile.am b/MagickCore/Makefile.am
index 783beea..54354e2 100644
--- a/MagickCore/Makefile.am
+++ b/MagickCore/Makefile.am
@@ -127,6 +127,7 @@
 	MagickCore/fx-private.h \
 	MagickCore/gem.c \
 	MagickCore/gem.h \
+	MagickCore/gem-private.h \
 	MagickCore/geometry.c \
 	MagickCore/geometry.h \
 	MagickCore/hashmap.c \
@@ -157,6 +158,7 @@
 	MagickCore/magick.h \
 	MagickCore/matrix.c \
 	MagickCore/matrix.h \
+	MagickCore/matrix-private.h \
 	MagickCore/memory.c \
 	MagickCore/memory_.h \
 	MagickCore/methods.h \
@@ -251,6 +253,7 @@
 	MagickCore/type.h \
 	MagickCore/utility.c \
 	MagickCore/utility.h \
+	MagickCore/utility-private.h \
 	MagickCore/version.c \
 	MagickCore/version.h \
 	MagickCore/vms.h \
@@ -390,12 +393,14 @@
 	MagickCore/draw-private.h \
 	MagickCore/exception-private.h \
 	MagickCore/fx-private.h \
+	MagickCore/gem-private.h \
 	MagickCore/image-private.h \
  	MagickCore/locale-private.h \
  	MagickCore/log-private.h \
 	MagickCore/mac.h \
  	MagickCore/magick-private.h \
  	MagickCore/magic-private.h \
+	MagickCore/matrix-private.h \
  	MagickCore/methods-private.h \
  	MagickCore/mime-private.h \
 	MagickCore/mime-private.h \
@@ -424,6 +429,7 @@
 	MagickCore/thread-private.h \
 	MagickCore/token-private.h \
  	MagickCore/type-private.h \
+	MagickCore/utility-private.h \
 	MagickCore/vms.h \
  	MagickCore/widget-private.h \
 	MagickCore/xwindow-private.h
diff --git a/MagickCore/accelerate.c b/MagickCore/accelerate.c
index 8897422..61c61bf 100644
--- a/MagickCore/accelerate.c
+++ b/MagickCore/accelerate.c
@@ -53,6 +53,7 @@
 #include "MagickCore/accelerate.h"
 #include "MagickCore/artifact.h"
 #include "MagickCore/cache.h"
+#include "MagickCore/cache-private.h"
 #include "MagickCore/cache-view.h"
 #include "MagickCore/color-private.h"
 #include "MagickCore/enhance.h"
diff --git a/MagickCore/animate.c b/MagickCore/animate.c
index c73ec1f..b79c0d6 100644
--- a/MagickCore/animate.c
+++ b/MagickCore/animate.c
@@ -67,6 +67,7 @@
 #include "MagickCore/string-private.h"
 #include "MagickCore/transform.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/version.h"
 #include "MagickCore/widget.h"
 #include "MagickCore/widget-private.h"
diff --git a/MagickCore/annotate.c b/MagickCore/annotate.c
index c141379..0def9c9 100644
--- a/MagickCore/annotate.c
+++ b/MagickCore/annotate.c
@@ -73,6 +73,7 @@
 #include "MagickCore/transform.h"
 #include "MagickCore/type.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/xwindow.h"
 #include "MagickCore/xwindow-private.h"
 #if defined(MAGICKCORE_FREETYPE_DELEGATE)
diff --git a/MagickCore/blob.c b/MagickCore/blob.c
index 1e0b5af..33b0ddb 100644
--- a/MagickCore/blob.c
+++ b/MagickCore/blob.c
@@ -62,6 +62,7 @@
 #include "MagickCore/string-private.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #if defined(MAGICKCORE_HAVE_MMAP_FILEIO) && !defined(MAGICKCORE_WINDOWS_SUPPORT)
 # include <sys/mman.h>
 #endif
diff --git a/MagickCore/cache-private.h b/MagickCore/cache-private.h
index 5612e34..efdd39a 100644
--- a/MagickCore/cache-private.h
+++ b/MagickCore/cache-private.h
@@ -217,11 +217,13 @@
   *GetVirtualPixelsNexus(const Cache,NexusInfo *);
 
 extern MagickPrivate const void
+  *AcquirePixelCachePixels(const Image *,MagickSizeType *,ExceptionInfo *),
   *GetVirtualMetacontentFromNexus(const Cache,NexusInfo *);
 
 extern MagickPrivate MagickBooleanType
   CacheComponentGenesis(void),
-  SyncAuthenticPixelCacheNexus(Image *,NexusInfo *,ExceptionInfo *);
+  SyncAuthenticPixelCacheNexus(Image *,NexusInfo *,ExceptionInfo *),
+  SyncImagePixelCache(Image *,ExceptionInfo *);
 
 extern MagickPrivate MagickSizeType
   GetPixelCacheNexusExtent(const Cache,NexusInfo *);
@@ -240,10 +242,15 @@
 extern MagickPrivate size_t
   GetPixelCacheChannels(const Cache);
 
+extern MagickPrivate VirtualPixelMethod
+  GetPixelCacheVirtualMethod(const Image *),
+  SetPixelCacheVirtualMethod(const Image *,const VirtualPixelMethod);
+
 extern MagickPrivate void
   CacheComponentTerminus(void),
   ClonePixelCacheMethods(Cache,const Cache),
   *GetPixelCacheNexusMetacontent(const Cache,NexusInfo *),
+  *GetPixelCachePixels(Image *,MagickSizeType *,ExceptionInfo *),
   GetPixelCacheTileSize(const Image *,size_t *,size_t *),
   GetPixelCacheMethods(CacheMethods *),
   SetPixelCacheMethods(Cache,CacheMethods *);
diff --git a/MagickCore/cache.c b/MagickCore/cache.c
index 74318ec..d24a07a 100644
--- a/MagickCore/cache.c
+++ b/MagickCore/cache.c
@@ -66,6 +66,7 @@
 #include "MagickCore/string-private.h"
 #include "MagickCore/thread-private.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #if defined(MAGICKCORE_ZLIB_DELEGATE)
 #include "zlib.h"
 #endif
@@ -297,7 +298,7 @@
 %    o exception: return any errors or warnings in this structure.
 %
 */
-MagickExport const void *AcquirePixelCachePixels(const Image *image,
+MagickPrivate const void *AcquirePixelCachePixels(const Image *image,
   MagickSizeType *length,ExceptionInfo *exception)
 {
   CacheInfo
@@ -2687,7 +2688,7 @@
 %    o exception: return any errors or warnings in this structure.
 %
 */
-MagickExport void *GetPixelCachePixels(Image *image,MagickSizeType *length,
+MagickPrivate void *GetPixelCachePixels(Image *image,MagickSizeType *length,
   ExceptionInfo *exception)
 {
   CacheInfo
@@ -2850,7 +2851,7 @@
 %    o image: the image.
 %
 */
-MagickExport VirtualPixelMethod GetPixelCacheVirtualMethod(const Image *image)
+MagickPrivate VirtualPixelMethod GetPixelCacheVirtualMethod(const Image *image)
 {
   CacheInfo
     *cache_info;
@@ -5118,7 +5119,7 @@
 %    o virtual_pixel_method: choose the type of virtual pixel.
 %
 */
-MagickExport VirtualPixelMethod SetPixelCacheVirtualMethod(const Image *image,
+MagickPrivate VirtualPixelMethod SetPixelCacheVirtualMethod(const Image *image,
   const VirtualPixelMethod virtual_pixel_method)
 {
   CacheInfo
@@ -5316,7 +5317,7 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-%   S y n c I m a g e P i x e l C a c h e                                     %
++   S y n c I m a g e P i x e l C a c h e                                     %
 %                                                                             %
 %                                                                             %
 %                                                                             %
@@ -5338,7 +5339,7 @@
 %    o exception: return any errors or warnings in this structure.
 %
 */
-MagickExport MagickBooleanType SyncImagePixelCache(Image *image,
+MagickPrivate MagickBooleanType SyncImagePixelCache(Image *image,
   ExceptionInfo *exception)
 {
   CacheInfo
diff --git a/MagickCore/cache.h b/MagickCore/cache.h
index 0d262e5..a511519 100644
--- a/MagickCore/cache.h
+++ b/MagickCore/cache.h
@@ -30,7 +30,6 @@
   *GetVirtualPixelQueue(const Image *);
 
 extern MagickExport const void
-  *AcquirePixelCachePixels(const Image *,MagickSizeType *,ExceptionInfo *),
   *GetVirtualMetacontent(const Image *);
 
 extern MagickExport MagickBooleanType
@@ -44,8 +43,7 @@
     ExceptionInfo *),
   PersistPixelCache(Image *,const char *,const MagickBooleanType,
     MagickOffsetType *,ExceptionInfo *),
-  SyncAuthenticPixels(Image *,ExceptionInfo *),
-  SyncImagePixelCache(Image *,ExceptionInfo *);
+  SyncAuthenticPixels(Image *,ExceptionInfo *);
 
 extern MagickExport MagickSizeType
   GetImageExtent(const Image *);
@@ -57,13 +55,8 @@
   *QueueAuthenticPixels(Image *,const ssize_t,const ssize_t,const size_t,
     const size_t,ExceptionInfo *);
 
-extern MagickExport VirtualPixelMethod
-  GetPixelCacheVirtualMethod(const Image *),
-  SetPixelCacheVirtualMethod(const Image *,const VirtualPixelMethod);
-
 extern MagickExport void
-  *GetAuthenticMetacontent(const Image *),
-  *GetPixelCachePixels(Image *,MagickSizeType *,ExceptionInfo *);
+  *GetAuthenticMetacontent(const Image *);
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
diff --git a/MagickCore/coder.c b/MagickCore/coder.c
index 8fb497d..2b411ee 100644
--- a/MagickCore/coder.c
+++ b/MagickCore/coder.c
@@ -57,6 +57,7 @@
 #include "MagickCore/splay-tree.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/xml-tree.h"
 
 /*
diff --git a/MagickCore/color.c b/MagickCore/color.c
index c391910..960cb12 100644
--- a/MagickCore/color.c
+++ b/MagickCore/color.c
@@ -52,6 +52,7 @@
 #include "MagickCore/exception.h"
 #include "MagickCore/exception-private.h"
 #include "MagickCore/gem.h"
+#include "MagickCore/gem-private.h"
 #include "MagickCore/geometry.h"
 #include "MagickCore/image-private.h"
 #include "MagickCore/memory_.h"
@@ -66,6 +67,7 @@
 #include "MagickCore/string_.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/xml-tree.h"
 
 /*
diff --git a/MagickCore/colorspace.c b/MagickCore/colorspace.c
index 02483fd..ec6c3ab 100644
--- a/MagickCore/colorspace.c
+++ b/MagickCore/colorspace.c
@@ -53,6 +53,7 @@
 #include "MagickCore/image.h"
 #include "MagickCore/image-private.h"
 #include "MagickCore/gem.h"
+#include "MagickCore/gem-private.h"
 #include "MagickCore/memory_.h"
 #include "MagickCore/monitor.h"
 #include "MagickCore/monitor-private.h"
diff --git a/MagickCore/composite.c b/MagickCore/composite.c
index 2225223..6f9c7e1 100644
--- a/MagickCore/composite.c
+++ b/MagickCore/composite.c
@@ -72,6 +72,7 @@
 #include "MagickCore/string_.h"
 #include "MagickCore/thread-private.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/version.h"
 
 /*
diff --git a/MagickCore/configure.c b/MagickCore/configure.c
index 83051b3..6049bb0 100644
--- a/MagickCore/configure.c
+++ b/MagickCore/configure.c
@@ -53,6 +53,7 @@
 #include "MagickCore/string_.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/xml-tree.h"
 
 /*
diff --git a/MagickCore/constitute.c b/MagickCore/constitute.c
index fbe65a3..e2d0e29 100644
--- a/MagickCore/constitute.c
+++ b/MagickCore/constitute.c
@@ -74,6 +74,7 @@
 #include "MagickCore/timer.h"
 #include "MagickCore/transform.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 
 static SemaphoreInfo
   *constitute_semaphore = (SemaphoreInfo *) NULL;
diff --git a/MagickCore/delegate.c b/MagickCore/delegate.c
index fea2642..2f47595 100644
--- a/MagickCore/delegate.c
+++ b/MagickCore/delegate.c
@@ -64,6 +64,7 @@
 #include "MagickCore/string_.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/xml-tree.h"
 
 /*
diff --git a/MagickCore/display.c b/MagickCore/display.c
index d0308b2..84c09bb 100644
--- a/MagickCore/display.c
+++ b/MagickCore/display.c
@@ -85,6 +85,7 @@
 #include "MagickCore/transform.h"
 #include "MagickCore/threshold.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/version.h"
 #include "MagickCore/widget.h"
 #include "MagickCore/widget-private.h"
diff --git a/MagickCore/distort.c b/MagickCore/distort.c
index 4d46fd3..6413c53 100644
--- a/MagickCore/distort.c
+++ b/MagickCore/distort.c
@@ -54,6 +54,7 @@
 #include "MagickCore/image.h"
 #include "MagickCore/list.h"
 #include "MagickCore/matrix.h"
+#include "MagickCore/matrix-private.h"
 #include "MagickCore/memory_.h"
 #include "MagickCore/monitor-private.h"
 #include "MagickCore/option.h"
diff --git a/MagickCore/enhance.c b/MagickCore/enhance.c
index d6c70a2..fe3079a 100644
--- a/MagickCore/enhance.c
+++ b/MagickCore/enhance.c
@@ -53,6 +53,7 @@
 #include "MagickCore/exception-private.h"
 #include "MagickCore/fx.h"
 #include "MagickCore/gem.h"
+#include "MagickCore/gem-private.h"
 #include "MagickCore/geometry.h"
 #include "MagickCore/histogram.h"
 #include "MagickCore/image.h"
diff --git a/MagickCore/exception.c b/MagickCore/exception.c
index 509a585..47c9d29 100644
--- a/MagickCore/exception.c
+++ b/MagickCore/exception.c
@@ -51,6 +51,7 @@
 #include "MagickCore/memory_.h"
 #include "MagickCore/string_.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 
 /*
   Forward declarations.
@@ -936,10 +937,10 @@
 %
 */
 
-MagickExport MagickBooleanType ThrowMagickExceptionList(
-  ExceptionInfo *exception,const char *module,const char *function,
-  const size_t line,const ExceptionType severity,const char *tag,
-  const char *format,va_list operands)
+static MagickBooleanType ThrowMagickExceptionList(ExceptionInfo *exception,
+  const char *module,const char *function,const size_t line,
+  const ExceptionType severity,const char *tag,const char *format,
+  va_list operands)
 {
   char
     message[MaxTextExtent],
diff --git a/MagickCore/exception.h b/MagickCore/exception.h
index de24d7e..b979323 100644
--- a/MagickCore/exception.h
+++ b/MagickCore/exception.h
@@ -154,10 +154,7 @@
     const char *),
   ThrowMagickException(ExceptionInfo *,const char *,const char *,const size_t,
     const ExceptionType,const char *,const char *,...)
-    magick_attribute((format (printf,7,8))),
-  ThrowMagickExceptionList(ExceptionInfo *,const char *,const char *,
-    const size_t,const ExceptionType,const char *,const char *,va_list)
-    magick_attribute((format (printf,7,0)));
+    magick_attribute((format (printf,7,8)));
 
 extern MagickExport void
   CatchException(ExceptionInfo *),
diff --git a/MagickCore/gem-private.h b/MagickCore/gem-private.h
new file mode 100644
index 0000000..a50a38b
--- /dev/null
+++ b/MagickCore/gem-private.h
@@ -0,0 +1,39 @@
+/*
+  Copyright 1999-2011 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 private graphic gems methods.
+*/
+#ifndef _MAGICKCORE_GEM_PRIVATE_H
+#define _MAGICKCORE_GEM_PRIVATE_H
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+extern MagickPrivate void
+  ConvertHSBToRGB(const double,const double,const double,Quantum *,Quantum *,
+    Quantum *),
+  ConvertHWBToRGB(const double,const double,const double,Quantum *,Quantum *,
+    Quantum *),
+  ConvertRGBToHSB(const Quantum,const Quantum,const Quantum,double *,double *,
+    double *),
+  ConvertRGBToHWB(const Quantum,const Quantum,const Quantum,double *,double *,
+    double *);
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
+
+#endif
diff --git a/MagickCore/gem.c b/MagickCore/gem.c
index cf479c1..9ac8e13 100644
--- a/MagickCore/gem.c
+++ b/MagickCore/gem.c
@@ -44,6 +44,7 @@
 #include "MagickCore/color-private.h"
 #include "MagickCore/draw.h"
 #include "MagickCore/gem.h"
+#include "MagickCore/gem-private.h"
 #include "MagickCore/image.h"
 #include "MagickCore/image-private.h"
 #include "MagickCore/log.h"
@@ -83,7 +84,7 @@
 %    o red, green, blue: A pointer to a pixel component of type Quantum.
 %
 */
-MagickExport void ConvertHSBToRGB(const double hue,const double saturation,
+MagickPrivate void ConvertHSBToRGB(const double hue,const double saturation,
   const double brightness,Quantum *red,Quantum *green,Quantum *blue)
 {
   MagickRealType
@@ -266,7 +267,7 @@
 %    o red, green, blue: A pointer to a pixel component of type Quantum.
 %
 */
-MagickExport void ConvertHWBToRGB(const double hue,const double whiteness,
+MagickPrivate void ConvertHWBToRGB(const double hue,const double whiteness,
   const double blackness,Quantum *red,Quantum *green,Quantum *blue)
 {
   MagickRealType
@@ -343,7 +344,7 @@
 %      component of the HSB color space.
 %
 */
-MagickExport void ConvertRGBToHSB(const Quantum red,const Quantum green,
+MagickPrivate void ConvertRGBToHSB(const Quantum red,const Quantum green,
   const Quantum blue,double *hue,double *saturation,double *brightness)
 {
   MagickRealType
@@ -506,7 +507,7 @@
 %      component of the HWB color space.
 %
 */
-MagickExport void ConvertRGBToHWB(const Quantum red,const Quantum green,
+MagickPrivate void ConvertRGBToHWB(const Quantum red,const Quantum green,
   const Quantum blue,double *hue,double *whiteness,double *blackness)
 {
   long
diff --git a/MagickCore/gem.h b/MagickCore/gem.h
index 27796f9..de71255 100644
--- a/MagickCore/gem.h
+++ b/MagickCore/gem.h
@@ -13,10 +13,10 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 
-  MagickCore private graphic gems methods.
+  MagickCore graphic gems methods.
 */
-#ifndef _MAGICKCORE_GEM_PRIVATE_H
-#define _MAGICKCORE_GEM_PRIVATE_H
+#ifndef _MAGICKCORE_GEM_H
+#define _MAGICKCORE_GEM_H
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
@@ -36,17 +36,9 @@
   GetOptimalKernelWidth2D(const double,const double);
 
 extern MagickExport void
-  ConvertHSBToRGB(const double,const double,const double,Quantum *,Quantum *,
-    Quantum *),
   ConvertHSLToRGB(const double,const double,const double,Quantum *,Quantum *,
     Quantum *),
-  ConvertHWBToRGB(const double,const double,const double,Quantum *,Quantum *,
-    Quantum *),
-  ConvertRGBToHSB(const Quantum,const Quantum,const Quantum,double *,double *,
-    double *),
   ConvertRGBToHSL(const Quantum,const Quantum,const Quantum,double *,double *,
-    double *),
-  ConvertRGBToHWB(const Quantum,const Quantum,const Quantum,double *,double *,
     double *);
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/MagickCore/identify.c b/MagickCore/identify.c
index b9fe664..4bcbad7 100644
--- a/MagickCore/identify.c
+++ b/MagickCore/identify.c
@@ -92,6 +92,7 @@
 #include "MagickCore/string-private.h"
 #include "MagickCore/timer.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/version.h"
 #if defined(MAGICKCORE_LCMS_DELEGATE)
 #if defined(MAGICKCORE_HAVE_LCMS_LCMS2_H)
diff --git a/MagickCore/image.c b/MagickCore/image.c
index b1a34f4..2bb3af2 100644
--- a/MagickCore/image.c
+++ b/MagickCore/image.c
@@ -92,6 +92,7 @@
 #include "MagickCore/threshold.h"
 #include "MagickCore/timer.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/version.h"
 #include "MagickCore/xwindow-private.h"
 
diff --git a/MagickCore/locale.c b/MagickCore/locale.c
index e26ee1d..00d45ce 100644
--- a/MagickCore/locale.c
+++ b/MagickCore/locale.c
@@ -55,6 +55,7 @@
 #include "MagickCore/string_.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/xml-tree.h"
 
 /*
diff --git a/MagickCore/log.c b/MagickCore/log.c
index 7448e24..7dc947f 100644
--- a/MagickCore/log.c
+++ b/MagickCore/log.c
@@ -58,6 +58,7 @@
 #include "MagickCore/thread_.h"
 #include "MagickCore/thread-private.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/version.h"
 #include "MagickCore/xml-tree.h"
 
diff --git a/MagickCore/magic.c b/MagickCore/magic.c
index 0409fe6..20c91db 100644
--- a/MagickCore/magic.c
+++ b/MagickCore/magic.c
@@ -54,6 +54,7 @@
 #include "MagickCore/string-private.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/xml-tree.h"
 
 /*
diff --git a/MagickCore/magick.c b/MagickCore/magick.c
index 376e9c2..7c69645 100644
--- a/MagickCore/magick.c
+++ b/MagickCore/magick.c
@@ -85,6 +85,7 @@
 #include "MagickCore/type-private.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/xwindow-private.h"
 
 /*
diff --git a/MagickCore/matrix-private.h b/MagickCore/matrix-private.h
new file mode 100644
index 0000000..fe3f539
--- /dev/null
+++ b/MagickCore/matrix-private.h
@@ -0,0 +1,36 @@
+/*
+  Copyright 1999-2011 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 private graphic matrix methods.
+*/
+#ifndef _MAGICKCORE_MATRIX_PRIVATE_H
+#define _MAGICKCORE_MATRIX_PRIVATE_H
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+extern MagickPrivate MagickBooleanType
+  GaussJordanElimination(double **,double **,const size_t,const size_t);
+
+extern MagickPrivate void
+  LeastSquaresAddTerms(double **,double **,const double *,const double *,
+    const size_t, const size_t);
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
+
+#endif
diff --git a/MagickCore/matrix.c b/MagickCore/matrix.c
index db6d69c..23aa0ce 100644
--- a/MagickCore/matrix.c
+++ b/MagickCore/matrix.c
@@ -41,6 +41,7 @@
 */
 #include "MagickCore/studio.h"
 #include "MagickCore/matrix.h"
+#include "MagickCore/matrix-private.h"
 #include "MagickCore/memory_.h"
 #include "MagickCore/utility.h"
 
@@ -176,7 +177,7 @@
 %  details see    http://en.wikipedia.org/wiki/Gauss-Jordan_elimination
 %
 */
-MagickExport MagickBooleanType GaussJordanElimination(double **matrix,
+MagickPrivate MagickBooleanType GaussJordanElimination(double **matrix,
   double **vectors,const size_t rank,const size_t number_vectors)
 {
 #define GaussJordanSwap(x,y) \
@@ -354,7 +355,7 @@
 %     RelinquishMagickMatrix(vectors,2UL);
 %
 */
-MagickExport void LeastSquaresAddTerms(double **matrix,double **vectors,
+MagickPrivate void LeastSquaresAddTerms(double **matrix,double **vectors,
   const double *terms,const double *results,const size_t rank,
   const size_t number_vectors)
 {
diff --git a/MagickCore/matrix.h b/MagickCore/matrix.h
index 1ec1df7..b54d113 100644
--- a/MagickCore/matrix.h
+++ b/MagickCore/matrix.h
@@ -26,13 +26,6 @@
   **AcquireMagickMatrix(const size_t,const size_t),
   **RelinquishMagickMatrix(double **,const size_t);
 
-extern MagickExport MagickBooleanType
-  GaussJordanElimination(double **,double **,const size_t,const size_t);
-
-extern MagickExport void
-  LeastSquaresAddTerms(double **,double **,const double *,const double *,
-    const size_t, const size_t);
-
 #if defined(__cplusplus) || defined(c_plusplus)
 }
 #endif
diff --git a/MagickCore/mime.c b/MagickCore/mime.c
index c57b40b..4fa6b47 100644
--- a/MagickCore/mime.c
+++ b/MagickCore/mime.c
@@ -52,6 +52,7 @@
 #include "MagickCore/string_.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/xml-tree.h"
 
 /*
diff --git a/MagickCore/module.c b/MagickCore/module.c
index 77648f2..27103c7 100644
--- a/MagickCore/module.c
+++ b/MagickCore/module.c
@@ -61,6 +61,7 @@
 #include "MagickCore/string_.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #if defined(MAGICKCORE_MODULES_SUPPORT)
 #if defined(MAGICKCORE_LTDL_DELEGATE)
 #include "ltdl.h"
diff --git a/MagickCore/montage.c b/MagickCore/montage.c
index af46c4a..62c4633 100644
--- a/MagickCore/montage.c
+++ b/MagickCore/montage.c
@@ -69,6 +69,7 @@
 #include "MagickCore/resource_.h"
 #include "MagickCore/string_.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/version.h"
 
 /*
diff --git a/MagickCore/morphology.c b/MagickCore/morphology.c
index 0c76037..dabe4b8 100644
--- a/MagickCore/morphology.c
+++ b/MagickCore/morphology.c
@@ -78,6 +78,7 @@
 #include "MagickCore/string-private.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 
 
 /*
diff --git a/MagickCore/policy.c b/MagickCore/policy.c
index 27e32ed..747ce52 100644
--- a/MagickCore/policy.c
+++ b/MagickCore/policy.c
@@ -55,6 +55,7 @@
 #include "MagickCore/string_.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/xml-tree.h"
 
 /*
diff --git a/MagickCore/property.c b/MagickCore/property.c
index 460c85b..90dce94 100644
--- a/MagickCore/property.c
+++ b/MagickCore/property.c
@@ -75,6 +75,7 @@
 #include "MagickCore/string-private.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/version.h"
 #include "MagickCore/xml-tree.h"
 
diff --git a/MagickCore/resample.c b/MagickCore/resample.c
index 7da164c..37c1382 100644
--- a/MagickCore/resample.c
+++ b/MagickCore/resample.c
@@ -62,6 +62,7 @@
 #include "MagickCore/transform.h"
 #include "MagickCore/signature-private.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 /*
   EWA Resampling Options
 */
diff --git a/MagickCore/resize.c b/MagickCore/resize.c
index e88ff06..83367a4 100644
--- a/MagickCore/resize.c
+++ b/MagickCore/resize.c
@@ -70,6 +70,7 @@
 #include "MagickCore/string-private.h"
 #include "MagickCore/thread-private.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/version.h"
 #if defined(MAGICKCORE_LQR_DELEGATE)
 #include <lqr.h>
diff --git a/MagickCore/resource.c b/MagickCore/resource.c
index 7d640b7..4601ac5 100644
--- a/MagickCore/resource.c
+++ b/MagickCore/resource.c
@@ -62,6 +62,7 @@
 #include "MagickCore/thread-private.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 
 /*
   Typedef declarations.
diff --git a/MagickCore/token.c b/MagickCore/token.c
index cc74f37..b313d96 100644
--- a/MagickCore/token.c
+++ b/MagickCore/token.c
@@ -50,6 +50,7 @@
 #include "MagickCore/token.h"
 #include "MagickCore/token-private.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 
 /*
   Typedef declaractions.
diff --git a/MagickCore/type.c b/MagickCore/type.c
index aeea227..62e3ce4 100644
--- a/MagickCore/type.c
+++ b/MagickCore/type.c
@@ -58,6 +58,7 @@
 #include "MagickCore/type-private.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/xml-tree.h"
 #if defined(MAGICKCORE_FONTCONFIG_DELEGATE)
 # include "fontconfig/fontconfig.h"
diff --git a/MagickCore/utility-private.h b/MagickCore/utility-private.h
new file mode 100644
index 0000000..0cf53ba
--- /dev/null
+++ b/MagickCore/utility-private.h
@@ -0,0 +1,44 @@
+/*
+  Copyright 1999-2011 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 private utility methods.
+*/
+#ifndef _MAGICKCORE_UTILITY_PRIVATE_H
+#define _MAGICKCORE_UTILITY_PRIVATE_H
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+extern MagickPrivate char
+  **GetPathComponents(const char *,size_t *),
+  **ListFiles(const char *,const char *,size_t *);
+
+extern MagickPrivate MagickBooleanType
+  GetExecutionPath(char *,const size_t);
+
+extern MagickPrivate ssize_t
+  GetMagickPageSize(void);
+
+extern MagickPrivate void
+  ChopPathComponents(char *,const size_t),
+  ExpandFilename(char *),
+  MagickDelay(const MagickSizeType);
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
+
+#endif
diff --git a/MagickCore/utility.c b/MagickCore/utility.c
index b369536..2cd8787 100644
--- a/MagickCore/utility.c
+++ b/MagickCore/utility.c
@@ -58,6 +58,7 @@
 #include "MagickCore/string_.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #if defined(MAGICKCORE_HAVE_PROCESS_H)
 #include <process.h>
 #endif
@@ -564,7 +565,7 @@
 %    o components:  The number of components to chop.
 %
 */
-MagickExport void ChopPathComponents(char *path,const size_t components)
+MagickPrivate void ChopPathComponents(char *path,const size_t components)
 {
   register ssize_t
     i;
@@ -596,7 +597,7 @@
 %      path.
 %
 */
-MagickExport void ExpandFilename(char *path)
+MagickPrivate void ExpandFilename(char *path)
 {
   char
     expand_path[MaxTextExtent];
@@ -937,7 +938,7 @@
 %    o extent: the maximum extent of the path.
 %
 */
-MagickExport MagickBooleanType GetExecutionPath(char *path,const size_t extent)
+MagickPrivate MagickBooleanType GetExecutionPath(char *path,const size_t extent)
 {
   char
     *directory;
@@ -1059,7 +1060,7 @@
 %      ssize_t GetMagickPageSize()
 %
 */
-MagickExport ssize_t GetMagickPageSize(void)
+MagickPrivate ssize_t GetMagickPageSize(void)
 {
   static ssize_t
     page_size = -1;
@@ -1450,7 +1451,7 @@
 %    o number_components:  return the number of components in the list
 %
 */
-MagickExport char **GetPathComponents(const char *path,
+MagickPrivate char **GetPathComponents(const char *path,
   size_t *number_components)
 {
   char
@@ -1682,7 +1683,7 @@
 #endif
 }
 
-MagickExport char **ListFiles(const char *directory,const char *pattern,
+MagickPrivate char **ListFiles(const char *directory,const char *pattern,
   size_t *number_entries)
 {
   char
@@ -1803,7 +1804,7 @@
 %      returning.
 %
 */
-MagickExport void MagickDelay(const MagickSizeType milliseconds)
+MagickPrivate void MagickDelay(const MagickSizeType milliseconds)
 {
   if (milliseconds == 0)
     return;
@@ -1868,7 +1869,6 @@
 %
 %   o  label:  This character string is the label.
 %
-%
 */
 MagickExport size_t MultilineCensus(const char *label)
 {
diff --git a/MagickCore/utility.h b/MagickCore/utility.h
index d8d308f..e22a721 100644
--- a/MagickCore/utility.h
+++ b/MagickCore/utility.h
@@ -36,9 +36,7 @@
 } PathType;
 
 extern MagickExport char
-  *Base64Encode(const unsigned char *,const size_t,size_t *),
-  **GetPathComponents(const char *,size_t *),
-  **ListFiles(const char *,const char *,size_t *);
+  *Base64Encode(const unsigned char *,const size_t,size_t *);
 
 extern MagickExport FILE
   *OpenMagickStream(const char *,const char *);
@@ -52,25 +50,18 @@
   AcquireUniqueSymbolicLink(const char *,char *),
   ExpandFilenames(int *,char ***),
   GetPathAttributes(const char *,void *),
-  GetExecutionPath(char *,const size_t),
   IsMagickTrue(const char *),
   IsPathAccessible(const char *);
 
 extern MagickExport size_t
   MultilineCensus(const char *);
 
-extern MagickExport ssize_t
-  GetMagickPageSize(void);
-
 extern MagickExport unsigned char
   *Base64Decode(const char *, size_t *);
 
 extern MagickExport void
   AppendImageFormat(const char *,char *),
-  ChopPathComponents(char *,const size_t),
-  ExpandFilename(char *),
-  GetPathComponent(const char *,PathType,char *),
-  MagickDelay(const MagickSizeType);
+  GetPathComponent(const char *,PathType,char *);
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
diff --git a/MagickCore/version.c b/MagickCore/version.c
index 869ccfb..579191a 100644
--- a/MagickCore/version.c
+++ b/MagickCore/version.c
@@ -45,6 +45,7 @@
 #include "MagickCore/option.h"
 #include "MagickCore/string_.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/version.h"
 
 /*
diff --git a/MagickCore/version.h b/MagickCore/version.h
index 61157d3..c85ce25 100644
--- a/MagickCore/version.h
+++ b/MagickCore/version.h
@@ -34,7 +34,7 @@
 #define MagickLibAddendum  "-0"
 #define MagickLibInterface  5
 #define MagickLibMinInterface  5
-#define MagickReleaseDate  "2011-09-02"
+#define MagickReleaseDate  "2011-09-03"
 #define MagickChangeDate   "20110801"
 #define MagickAuthoritativeURL  "http://www.imagemagick.org"
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
diff --git a/MagickCore/widget.c b/MagickCore/widget.c
index 6d745d1..708d551 100644
--- a/MagickCore/widget.c
+++ b/MagickCore/widget.c
@@ -52,6 +52,7 @@
 #include "MagickCore/string_.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/xwindow-private.h"
 #include "MagickCore/widget.h"
 #include "MagickCore/widget-private.h"
diff --git a/MagickCore/xml-tree.c b/MagickCore/xml-tree.c
index f7395c5..8baa482 100644
--- a/MagickCore/xml-tree.c
+++ b/MagickCore/xml-tree.c
@@ -59,6 +59,7 @@
 #include "MagickCore/token-private.h"
 #include "MagickCore/xml-tree.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 
 /*
   Define declarations.
diff --git a/MagickCore/xwindow.c b/MagickCore/xwindow.c
index 262f521..4304c16 100644
--- a/MagickCore/xwindow.c
+++ b/MagickCore/xwindow.c
@@ -76,6 +76,7 @@
 #include "MagickCore/string-private.h"
 #include "MagickCore/transform.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/utility-private.h"
 #include "MagickCore/widget.h"
 #include "MagickCore/widget-private.h"
 #include "MagickCore/xwindow.h"
diff --git a/Makefile.in b/Makefile.in
index f8f5b55..10f99cf 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -407,19 +407,20 @@
 	MagickCore/exception-private.h MagickCore/feature.c \
 	MagickCore/feature.h MagickCore/fourier.c MagickCore/fourier.h \
 	MagickCore/fx.c MagickCore/fx.h MagickCore/fx-private.h \
-	MagickCore/gem.c MagickCore/gem.h MagickCore/geometry.c \
-	MagickCore/geometry.h MagickCore/hashmap.c \
-	MagickCore/hashmap.h MagickCore/histogram.c \
-	MagickCore/histogram.h MagickCore/identify.c \
-	MagickCore/identify.h MagickCore/image.c MagickCore/image.h \
-	MagickCore/image-private.h MagickCore/image-view.c \
-	MagickCore/image-view.h MagickCore/layer.c MagickCore/layer.h \
-	MagickCore/list.c MagickCore/list.h MagickCore/locale.c \
-	MagickCore/locale_.h MagickCore/log.c MagickCore/log.h \
-	MagickCore/mac.h MagickCore/magic.c MagickCore/magic.h \
-	MagickCore/magick.c MagickCore/magick-config.h \
-	MagickCore/magick-type.h MagickCore/magick.h \
-	MagickCore/matrix.c MagickCore/matrix.h MagickCore/memory.c \
+	MagickCore/gem.c MagickCore/gem.h MagickCore/gem-private.h \
+	MagickCore/geometry.c MagickCore/geometry.h \
+	MagickCore/hashmap.c MagickCore/hashmap.h \
+	MagickCore/histogram.c MagickCore/histogram.h \
+	MagickCore/identify.c MagickCore/identify.h MagickCore/image.c \
+	MagickCore/image.h MagickCore/image-private.h \
+	MagickCore/image-view.c MagickCore/image-view.h \
+	MagickCore/layer.c MagickCore/layer.h MagickCore/list.c \
+	MagickCore/list.h MagickCore/locale.c MagickCore/locale_.h \
+	MagickCore/log.c MagickCore/log.h MagickCore/mac.h \
+	MagickCore/magic.c MagickCore/magic.h MagickCore/magick.c \
+	MagickCore/magick-config.h MagickCore/magick-type.h \
+	MagickCore/magick.h MagickCore/matrix.c MagickCore/matrix.h \
+	MagickCore/matrix-private.h MagickCore/memory.c \
 	MagickCore/memory_.h MagickCore/methods.h MagickCore/mime.c \
 	MagickCore/mime.h MagickCore/module.c MagickCore/module.h \
 	MagickCore/monitor.c MagickCore/monitor.h \
@@ -461,7 +462,8 @@
 	MagickCore/token-private.h MagickCore/transform.c \
 	MagickCore/transform.h MagickCore/threshold.c \
 	MagickCore/threshold.h MagickCore/type.c MagickCore/type.h \
-	MagickCore/utility.c MagickCore/utility.h MagickCore/version.c \
+	MagickCore/utility.c MagickCore/utility.h \
+	MagickCore/utility-private.h MagickCore/version.c \
 	MagickCore/version.h MagickCore/vms.h MagickCore/widget.c \
 	MagickCore/widget.h MagickCore/widget-private.h \
 	MagickCore/xml-tree.c MagickCore/xml-tree.h \
@@ -3934,6 +3936,7 @@
 	MagickCore/fx-private.h \
 	MagickCore/gem.c \
 	MagickCore/gem.h \
+	MagickCore/gem-private.h \
 	MagickCore/geometry.c \
 	MagickCore/geometry.h \
 	MagickCore/hashmap.c \
@@ -3964,6 +3967,7 @@
 	MagickCore/magick.h \
 	MagickCore/matrix.c \
 	MagickCore/matrix.h \
+	MagickCore/matrix-private.h \
 	MagickCore/memory.c \
 	MagickCore/memory_.h \
 	MagickCore/methods.h \
@@ -4058,6 +4062,7 @@
 	MagickCore/type.h \
 	MagickCore/utility.c \
 	MagickCore/utility.h \
+	MagickCore/utility-private.h \
 	MagickCore/version.c \
 	MagickCore/version.h \
 	MagickCore/vms.h \
@@ -4192,12 +4197,14 @@
 	MagickCore/draw-private.h \
 	MagickCore/exception-private.h \
 	MagickCore/fx-private.h \
+	MagickCore/gem-private.h \
 	MagickCore/image-private.h \
  	MagickCore/locale-private.h \
  	MagickCore/log-private.h \
 	MagickCore/mac.h \
  	MagickCore/magick-private.h \
  	MagickCore/magic-private.h \
+	MagickCore/matrix-private.h \
  	MagickCore/methods-private.h \
  	MagickCore/mime-private.h \
 	MagickCore/mime-private.h \
@@ -4226,6 +4233,7 @@
 	MagickCore/thread-private.h \
 	MagickCore/token-private.h \
  	MagickCore/type-private.h \
+	MagickCore/utility-private.h \
 	MagickCore/vms.h \
  	MagickCore/widget-private.h \
 	MagickCore/xwindow-private.h
diff --git a/filters/analyze.c b/filters/analyze.c
index 4ff40f3..4cb46a3 100644
--- a/filters/analyze.c
+++ b/filters/analyze.c
@@ -165,7 +165,7 @@
         }
       for (x=0; x < (ssize_t) image->columns; x++)
       {
-        ConvertRGBToHSB(GetPixelRed(image,p),GetPixelGreen(image,p),
+        ConvertRGBToHSL(GetPixelRed(image,p),GetPixelGreen(image,p),
           GetPixelBlue(image,p),&hue,&saturation,&brightness);
         brightness*=QuantumRange;
         brightness_sum_x+=brightness;
