diff --git a/config/configure.xml b/config/configure.xml
index 0c08532..6173469 100644
--- a/config/configure.xml
+++ b/config/configure.xml
@@ -9,7 +9,7 @@
   <configure name="NAME" value="ImageMagick"/>
   <configure name="LIB_VERSION" value="0x657"/>
   <configure name="LIB_VERSION_NUMBER" value="6,5,7,1"/>
-  <configure name="RELEASE_DATE" value="2009-10-17"/>
+  <configure name="RELEASE_DATE" value="2009-10-18"/>
   <configure name="CONFIGURE" value="./configure "/>
   <configure name="PREFIX" value="/usr/local"/>
   <configure name="EXEC-PREFIX" value="/usr/local"/>
diff --git a/config/english.xml b/config/english.xml
index 513ff87..02993a3 100644
--- a/config/english.xml
+++ b/config/english.xml
@@ -937,8 +937,8 @@
           <message name="UnableToAllocateImagePixels">
             unable to allocate image pixels
           </message>
-          <message name="UnableToInitializeSemaphore">
-            unable to initialize semaphore
+          <message name="UnableToInstantiateSemaphore">
+            unable to instantiate semaphore
           </message>
           <message name="UnableToAcquireString">
             unable to allocate string
diff --git a/magick/cache.c b/magick/cache.c
index 89fdcad..48b2071 100644
--- a/magick/cache.c
+++ b/magick/cache.c
@@ -1579,20 +1579,20 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   D e s t r o y P i x e l C a c h e R e s o u r c e s                       %
++   D e s t r o y C a c h e F a c i l i t y                                   %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  DestroyPixelCacheResources() destroys the cache resources.
+%  DestroyCacheFaclity() destroys the cache facility.
 %
-%  The format of the DestroyPixelCacheResources() method is:
+%  The format of the DestroyCacheFaclity() method is:
 %
-%      DestroyPixelCacheResources(void)
+%      DestroyCacheFaclity(void)
 %
 */
-MagickExport void DestroyPixelCacheResources(void)
+MagickExport void DestroyCacheFaclity(void)
 {
   AcquireSemaphoreInfo(&cache_semaphore);
   if (cache_resources != (SplayTreeInfo *) NULL)
@@ -3674,6 +3674,31 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   I n s t a n t i a t e C a c h e F a c i l i t y                           %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  InstantiateCacheFacility() instantiates the cache facility.
+%
+%  The format of the InstantiateCacheFacility method is:
+%
+%      MagickBooleanType InstantiateCacheFacility(void)
+%
+*/
+MagickExport MagickBooleanType InstantiateCacheFacility(void)
+{
+  AcquireSemaphoreInfo(&cache_semaphore);
+  RelinquishSemaphoreInfo(cache_semaphore);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 +   M a s k P i x e l C a c h e N e x u s                                     %
 %                                                                             %
 %                                                                             %
diff --git a/magick/cache.h b/magick/cache.h
index 1fa119a..69d6355 100644
--- a/magick/cache.h
+++ b/magick/cache.h
@@ -44,6 +44,7 @@
     const long,PixelPacket *,ExceptionInfo *),
   GetOneAuthenticPixel(Image *,const long,const long,PixelPacket *,
     ExceptionInfo *),
+  InstantiateCacheFacility(void),
   PersistPixelCache(Image *,const char *,const MagickBooleanType,
     MagickOffsetType *,ExceptionInfo *),
   SyncAuthenticPixels(Image *,ExceptionInfo *);
@@ -63,7 +64,7 @@
   SetPixelCacheVirtualMethod(const Image *,const VirtualPixelMethod);
 
 extern MagickExport void
-  DestroyPixelCacheResources(void);
+  DestroyCacheFaclity(void);
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
diff --git a/magick/coder.c b/magick/coder.c
index 584fed5..436b7f7 100644
--- a/magick/coder.c
+++ b/magick/coder.c
@@ -238,20 +238,20 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   D e s t r o y C o d e r L i s t                                           %
++   D e s t r o y C o d e r F a c i l i t y                                   %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  DestroyCoderList() deallocates memory associated with the font list.
+%  DestroyCoderFacility() destroys the coder facility.
 %
-%  The format of the DestroyCoderList method is:
+%  The format of the DestroyCoderFacility method is:
 %
-%      DestroyCoderList(void)
+%      DestroyCoderFacility(void)
 %
 */
-MagickExport void DestroyCoderList(void)
+MagickExport void DestroyCoderFacility(void)
 {
   AcquireSemaphoreInfo(&coder_semaphore);
   if (coder_list != (SplayTreeInfo *) NULL)
@@ -520,6 +520,31 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   I n s t a n t i a t e C o d e r F a c i l i t y                           %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  InstantiateCoderFacility() instantiates the coder facility.
+%
+%  The format of the InstantiateCoderFacility method is:
+%
+%      MagickBooleanType InstantiateCoderFacility(void)
+%
+*/
+MagickExport MagickBooleanType InstantiateCoderFacility(void)
+{
+  AcquireSemaphoreInfo(&coder_semaphore);
+  RelinquishSemaphoreInfo(coder_semaphore);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %  L i s t C o d e r I n f o                                                  %
 %                                                                             %
 %                                                                             %
diff --git a/magick/coder.h b/magick/coder.h
index aba1684..6f35e21 100644
--- a/magick/coder.h
+++ b/magick/coder.h
@@ -49,10 +49,11 @@
   **GetCoderInfoList(const char *,unsigned long *,ExceptionInfo *);
 
 extern MagickExport MagickBooleanType
+  InstantiateCoderFacility(void),
   ListCoderInfo(FILE *,ExceptionInfo *);
 
 MagickExport void
-  DestroyCoderList(void);
+  DestroyCoderFacility(void);
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
diff --git a/magick/color.c b/magick/color.c
index 78680a5..8678dd9 100644
--- a/magick/color.c
+++ b/magick/color.c
@@ -908,17 +908,17 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   D e s t r o y C o l o r L i s t                                           %
++   D e s t r o y C o l o r F a c i l i t y                                   %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  DestroyColorList() deallocates memory associated with the color list.
+%  DestroyColorFacility() destroys the color facility.
 %
-%  The format of the DestroyColorList method is:
+%  The format of the DestroyColorFacility method is:
 %
-%      DestroyColorList(void)
+%      DestroyColorFacility(void)
 %
 */
 
@@ -939,7 +939,7 @@
   return((void *) NULL);
 }
 
-MagickExport void DestroyColorList(void)
+MagickExport void DestroyColorFacility(void)
 {
   AcquireSemaphoreInfo(&color_semaphore);
   if (color_list != (LinkedListInfo *) NULL)
@@ -1436,6 +1436,31 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   I n s t a n t i a t e C o l o r F a c i l i t y                           %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  InstantiateColorFacility() instantiates the color facility.
+%
+%  The format of the InstantiateColorFacility method is:
+%
+%      MagickBooleanType InstantiateColorFacility(void)
+%
+*/
+MagickExport MagickBooleanType InstantiateColorFacility(void)
+{
+  AcquireSemaphoreInfo(&color_semaphore);
+  RelinquishSemaphoreInfo(color_semaphore);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 +   I s C o l o r S i m i l a r                                               %
 %                                                                             %
 %                                                                             %
diff --git a/magick/color.h b/magick/color.h
index de8a005..1c5191f 100644
--- a/magick/color.h
+++ b/magick/color.h
@@ -75,6 +75,7 @@
   **GetColorInfoList(const char *,unsigned long *,ExceptionInfo *);
 
 extern MagickExport MagickBooleanType
+  InstantiateColorFacility(void),
   IsColorSimilar(const Image *,const PixelPacket *,const PixelPacket *),
   IsGrayImage(const Image *,ExceptionInfo *),
   IsImageSimilar(const Image *,const Image *,long *x,long *y,ExceptionInfo *),
@@ -93,7 +94,7 @@
 extern MagickExport void
   ConcatenateColorComponent(const MagickPixelPacket *,const ChannelType,
     const ComplianceType,char *),
-  DestroyColorList(void),
+  DestroyColorFacility(void),
   GetColorTuple(const MagickPixelPacket *,const MagickBooleanType,char *);
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/magick/configure.c b/magick/configure.c
index 610c597..e2e0f30 100644
--- a/magick/configure.c
+++ b/magick/configure.c
@@ -90,17 +90,17 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   D e s t r o y C o n f i g u r e L i s t                                   %
++   D e s t r o y C o n f i g u r e F a c i l i t y                           %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  DestroyConfigureList() deallocates memory associated with the configure list.
+%  DestroyConfigureFacility() destroys the configure facility.
 %
-%  The format of the DestroyConfigureList method is:
+%  The format of the DestroyConfigureFacility method is:
 %
-%      DestroyConfigureList(void)
+%      DestroyConfigureFacility(void)
 %
 */
 
@@ -120,7 +120,7 @@
   return((void *) NULL);
 }
 
-MagickExport void DestroyConfigureList(void)
+MagickExport void DestroyConfigureFacility(void)
 {
   AcquireSemaphoreInfo(&configure_semaphore);
   if (configure_list != (LinkedListInfo *) NULL)
@@ -848,6 +848,31 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   I n s t a n t i a t e C o n f i g u r e F a c i l i t y                   %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  InstantiateConfigureFacility() instantiates the configure facility.
+%
+%  The format of the InstantiateConfigureFacility method is:
+%
+%      MagickBooleanType InstantiateConfigureFacility(void)
+%
+*/
+MagickExport MagickBooleanType InstantiateConfigureFacility(void)
+{
+  AcquireSemaphoreInfo(&configure_semaphore);
+  RelinquishSemaphoreInfo(configure_semaphore);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %  L i s t C o n f i g u r e I n f o                                          %
 %                                                                             %
 %                                                                             %
diff --git a/magick/configure.h b/magick/configure.h
index 68e2356..f98a7d5 100644
--- a/magick/configure.h
+++ b/magick/configure.h
@@ -59,10 +59,11 @@
   *GetConfigureOptions(const char *,ExceptionInfo *);
 
 extern MagickExport MagickBooleanType
+  InstantiateConfigureFacility(void),
   ListConfigureInfo(FILE *,ExceptionInfo *);
 
 extern MagickExport void
-  DestroyConfigureList(void);
+  DestroyConfigureFacility(void);
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
diff --git a/magick/constitute.c b/magick/constitute.c
index 3ddfc51..6ac2a4a 100644
--- a/magick/constitute.c
+++ b/magick/constitute.c
@@ -163,20 +163,20 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   D e s t r o y C o n s t i t u t e                                         %
++   D e s t r o y C o n s t i t u t e F a c i l i t y                         %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  DestroyConstitute() destroys the constitute environment.
+%  DestroyConstituteFacility() destroys the constitute facility.
 %
-%  The format of the DestroyConstitute method is:
+%  The format of the DestroyConstituteFacility method is:
 %
-%      DestroyConstitute(void)
+%      DestroyConstituteFacility(void)
 %
 */
-MagickExport void DestroyConstitute(void)
+MagickExport void DestroyConstituteFacility(void)
 {
   if (constitute_semaphore != (SemaphoreInfo *) NULL)
     DestroySemaphoreInfo(&constitute_semaphore);
@@ -187,6 +187,31 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   I n s t a n t i a t e C o n s t i t u t e F a c i l i t y                 %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  InstantiateConstituteFacility() instantiates the constitute facility.
+%
+%  The format of the InstantiateConstituteFacility method is:
+%
+%      MagickBooleanType InstantiateConstituteFacility(void)
+%
+*/
+MagickExport MagickBooleanType InstantiateConstituteFacility(void)
+{
+  AcquireSemaphoreInfo(&constitute_semaphore);
+  RelinquishSemaphoreInfo(constitute_semaphore);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   P i n g I m a g e                                                         %
 %                                                                             %
 %                                                                             %
diff --git a/magick/constitute.h b/magick/constitute.h
index 7058f9f..5b8dc06 100644
--- a/magick/constitute.h
+++ b/magick/constitute.h
@@ -44,11 +44,12 @@
   *ReadInlineImage(const ImageInfo *,const char *,ExceptionInfo *);
 
 extern MagickExport MagickBooleanType
+  InstantiateConstituteFacility(void),
   WriteImage(const ImageInfo *,Image *),
   WriteImages(const ImageInfo *,Image *,const char *,ExceptionInfo *);
 
 extern MagickExport void
-  DestroyConstitute(void);
+  DestroyConstituteFacility(void);
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
diff --git a/magick/delegate.c b/magick/delegate.c
index 416d244..79a2ed8 100644
--- a/magick/delegate.c
+++ b/magick/delegate.c
@@ -149,17 +149,17 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-%   D e s t r o y D e l e g a t e L i s t                                     %
+%   D e s t r o y D e l e g a t e F a c i l i t y                             %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  DestroyDelegateList() deallocates memory associated with the delegates list.
+%  DestroyDelegateFacility() destroys the delegate facility.
 %
-%  The format of the DestroyDelegateList method is:
+%  The format of the DestroyDelegateFacility method is:
 %
-%      DestroyDelegateList(void)
+%      DestroyDelegateFacility(void)
 %
 */
 
@@ -182,7 +182,7 @@
 }
 
 
-MagickExport void DestroyDelegateList(void)
+MagickExport void DestroyDelegateFacility(void)
 {
   AcquireSemaphoreInfo(&delegate_semaphore);
   if (delegate_list != (LinkedListInfo *) NULL)
@@ -698,6 +698,31 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   I n s t a n t i a t e D e l e g a t e F a c i l i t y                     %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  InstantiateDelegateFacility() instantiates the delegate facility.
+%
+%  The format of the InstantiateDelegateFacility method is:
+%
+%      MagickBooleanType InstantiateDelegateFacility(void)
+%
+*/
+MagickExport MagickBooleanType InstantiateDelegateFacility(void)
+{
+  AcquireSemaphoreInfo(&delegate_semaphore);
+  RelinquishSemaphoreInfo(delegate_semaphore);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   I n v o k e D e l e g a t e                                               %
 %                                                                             %
 %                                                                             %
diff --git a/magick/delegate.h b/magick/delegate.h
index 16061fb..9dbd221 100644
--- a/magick/delegate.h
+++ b/magick/delegate.h
@@ -63,11 +63,12 @@
 
 extern MagickExport MagickBooleanType
   GetDelegateThreadSupport(const DelegateInfo *),
+  InstantiateDelegateFacility(void),
   InvokeDelegate(ImageInfo *,Image *,const char *,const char *,ExceptionInfo *),
   ListDelegateInfo(FILE *,ExceptionInfo *);
 
 extern MagickExport void
-  DestroyDelegateList(void);
+  DestroyDelegateFacility(void);
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
diff --git a/magick/deprecate.c b/magick/deprecate.c
index 7134be4..2e09cca 100644
--- a/magick/deprecate.c
+++ b/magick/deprecate.c
@@ -1383,7 +1383,7 @@
 */
 MagickExport void DestroyMagickRegistry(void)
 {
-  DestroyImageRegistry();
+  DestroyRegistryFacility();
 }
 
 /*
diff --git a/magick/locale.c b/magick/locale.c
index cacf4e7..291431a 100644
--- a/magick/locale.c
+++ b/magick/locale.c
@@ -98,20 +98,20 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   D e s t r o y L o c a l e L i s t                                         %
++   D e s t r o y L o c a l e F a c i l i t y                                 %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  DestroyLocaleList() deallocates memory associated with the locale list.
+%  DestroyLocaleFacility() destroys the locale facility.
 %
-%  The format of the DestroyLocaleList method is:
+%  The format of the DestroyLocaleFacility method is:
 %
-%      DestroyLocaleList(void)
+%      DestroyLocaleFacility(void)
 %
 */
-MagickExport void DestroyLocaleList(void)
+MagickExport void DestroyLocaleFacility(void)
 {
   AcquireSemaphoreInfo(&locale_semaphore);
   if (locale_list != (SplayTreeInfo *) NULL)
@@ -617,6 +617,31 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   I n s t a n t i a t e L o c a l e F a c i l i t y                         %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  InstantiateLocaleFacility() instantiates the locale facility.
+%
+%  The format of the InstantiateLocaleFacility method is:
+%
+%      MagickBooleanType InstantiateLocaleFacility(void)
+%
+*/
+MagickExport MagickBooleanType InstantiateLocaleFacility(void)
+{
+  AcquireSemaphoreInfo(&locale_semaphore);
+  RelinquishSemaphoreInfo(locale_semaphore);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %  L i s t L o c a l e I n f o                                                %
 %                                                                             %
 %                                                                             %
diff --git a/magick/locale_.h b/magick/locale_.h
index d1919cb..0aff85b 100644
--- a/magick/locale_.h
+++ b/magick/locale_.h
@@ -57,10 +57,11 @@
   *GetLocaleOptions(const char *,ExceptionInfo *);
 
 extern MagickExport MagickBooleanType
+  InstantiateLocaleFacility(void),
   ListLocaleInfo(FILE *,ExceptionInfo *);
 
 extern MagickExport void
-  DestroyLocaleList(void);
+  DestroyLocaleFacility(void);
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
diff --git a/magick/log.c b/magick/log.c
index c7b5c1b..4c3a8fe 100644
--- a/magick/log.c
+++ b/magick/log.c
@@ -233,17 +233,17 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   D e s t r o y L o g L i s t                                               %
++   D e s t r o y L o g F a c i l i t y                                       %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  DestroyLogList() deallocates memory associated with the log list.
+%  DestroyLogFacility() destroys the logging facility.
 %
-%  The format of the DestroyLogList method is:
+%  The format of the DestroyLogFacility method is:
 %
-%      DestroyLogList(void)
+%      DestroyLogFacility(void)
 %
 */
 
@@ -270,7 +270,7 @@
   return((void *) NULL);
 }
 
-MagickExport void DestroyLogList(void)
+MagickExport void DestroyLogFacility(void)
 {
   AcquireSemaphoreInfo(&log_semaphore);
   if (log_list != (LinkedListInfo *) NULL)
@@ -591,6 +591,31 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   I n s t a n t i a t e L o g F a c i l i t y                               %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  InstantiateLogFacility() instantiates the log facility.
+%
+%  The format of the InstantiateLogFacility method is:
+%
+%      MagickBooleanType InstantiateLogFacility(void)
+%
+*/
+MagickExport MagickBooleanType InstantiateLogFacility(void)
+{
+  AcquireSemaphoreInfo(&log_semaphore);
+  RelinquishSemaphoreInfo(log_semaphore);
+  return(MagickFalse);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %  I s E v e n t L o g g i n g                                                %
 %                                                                             %
 %                                                                             %
diff --git a/magick/log.h b/magick/log.h
index 87705ee..a30d475 100644
--- a/magick/log.h
+++ b/magick/log.h
@@ -72,6 +72,7 @@
   SetLogEventMask(const char *);
 
 extern MagickExport MagickBooleanType
+  InstantiateLogFacility(void),
   IsEventLogging(void),
   ListLogInfo(FILE *,ExceptionInfo *),
   LogMagickEvent(const LogEventType,const char *,const char *,
@@ -83,7 +84,7 @@
 
 extern MagickExport void
   CloseMagickLog(void),
-  DestroyLogList(void),
+  DestroyLogFacility(void),
   SetLogFormat(const char *);
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/magick/magic.c b/magick/magic.c
index c521ff0..434f96e 100644
--- a/magick/magic.c
+++ b/magick/magic.c
@@ -213,17 +213,17 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   D e s t r o y M a g i c L i s t                                           %
++   D e s t r o y M a g i c F a c i l i t y                                   %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  DestroyMagicList() deallocates memory associated with the magic list.
+%  DestroyMagicFacility() destroys the magic facility.
 %
-%  The format of the DestroyMagicList method is:
+%  The format of the DestroyMagicFacility method is:
 %
-%      DestroyMagicList(void)
+%      DestroyMagicFacility(void)
 %
 */
 
@@ -248,7 +248,7 @@
   return((void *) NULL);
 }
 
-MagickExport void DestroyMagicList(void)
+MagickExport void DestroyMagicFacility(void)
 {
   AcquireSemaphoreInfo(&magic_semaphore);
   if (magic_list != (LinkedListInfo *) NULL)
@@ -588,6 +588,31 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   I n s t a n t i a t e M a g i c F a c i l i t y                           %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  InstantiateMagicFacility() instantiates the magic facility.
+%
+%  The format of the InstantiateMagicFacility method is:
+%
+%      MagickBooleanType InstantiateMagicFacility(void)
+%
+*/
+MagickExport MagickBooleanType InstantiateMagicFacility(void)
+{
+  AcquireSemaphoreInfo(&magic_semaphore);
+  RelinquishSemaphoreInfo(magic_semaphore);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %  L i s t M a g i c I n f o                                                  %
 %                                                                             %
 %                                                                             %
diff --git a/magick/magic.h b/magick/magic.h
index fc56ecd..53e6796 100644
--- a/magick/magic.h
+++ b/magick/magic.h
@@ -57,6 +57,7 @@
   *GetMagicName(const MagicInfo *);
 
 extern MagickExport MagickBooleanType
+  InstantiateMagicFacility(void),
   ListMagicInfo(FILE *,ExceptionInfo *);
 
 extern MagickExport const MagicInfo
@@ -64,7 +65,7 @@
   **GetMagicInfoList(const char *,unsigned long *,ExceptionInfo *);
 
 extern MagickExport void
-  DestroyMagicList(void);
+  DestroyMagicFacility(void);
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
diff --git a/magick/magick.c b/magick/magick.c
index 3b03176..23376be 100644
--- a/magick/magick.c
+++ b/magick/magick.c
@@ -124,20 +124,20 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   D e s t r o y M a g i c k L i s t                                         %
++   D e s t r o y M a g i c k F a c i l i t y                                 %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  DestroyMagickList() deallocates memory associated with the MagickInfo list.
+%  DestroyMagickFacility() destroys the magick facility.
 %
-%  The format of the DestroyMagickList method is:
+%  The format of the DestroyMagickFacility method is:
 %
-%      void DestroyMagickList(void)
+%      void DestroyMagickFacility(void)
 %
 */
-MagickExport void DestroyMagickList(void)
+MagickExport void DestroyMagickFacility(void)
 {
   AcquireSemaphoreInfo(&magick_semaphore);
   if (magick_list != (SplayTreeInfo *) NULL)
@@ -861,6 +861,31 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   I n s t a n t i a t e M a g i c k F a c i l i t y                         %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  InstantiateMagickFacility() instantiates the magick facility.
+%
+%  The format of the InstantiateMagickFacility method is:
+%
+%      MagickBooleanType InstantiateMagickFacility(void)
+%
+*/
+MagickExport MagickBooleanType InstantiateMagickFacility(void)
+{
+  AcquireSemaphoreInfo(&magick_semaphore);
+  RelinquishSemaphoreInfo(magick_semaphore);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 +   I s M a g i c k C o n f l i c t                                           %
 %                                                                             %
 %                                                                             %
@@ -1108,7 +1133,7 @@
 #if !defined(MAGICKCORE_HAVE_SIGACTION)
   (void) signal(signal_number,SIG_IGN);
 #endif
-  AsynchronousDestroyMagickResources();
+  AsynchronousDestroyResourceFacility();
   instantiate_magick=MagickFalse;
   (void) SetMagickSignalHandler(signal_number,signal_handlers[signal_number]);
 #if defined(MAGICKCORE_HAVE_RAISE)
@@ -1169,7 +1194,10 @@
   */
   (void) setlocale(LC_ALL,"");
   (void) setlocale(LC_NUMERIC,"C");
-  InitializeSemaphore();
+  (void) InstantiateSemaphoreFacility();
+  (void) InstantiateLogFacility();
+  (void) InstantiateLocaleFacility();
+  (void) InstantiateRandomFacility();
   seconds=time((time_t *) NULL);
   events=GetEnvironmentValue("MAGICK_DEBUG");
   if (events != (char *) NULL)
@@ -1246,12 +1274,26 @@
   /*
     Initialize magick resources.
   */
-  InitializeMagickResources();
+  (void) InstantiatePolicyFacility();
+  (void) InstantiateCacheFacility();
+  (void) InstantiateRegistryFacility();
+  (void) InstantiateResourcesFacility();
+  (void) InstantiateCoderFacility();
+  (void) InstantiateMagickFacility();
+  (void) InstantiateModuleFacility();
+  (void) InstantiateDelegateFacility();
+  (void) InstantiateMagicFacility();
+  (void) InstantiateColorFacility();
+  (void) InstantiateTypeFacility();
+  (void) InstantiateConfigureFacility();
+  (void) InstantiateMimeFacility();
+  (void) InstantiateConstituteFacility();
   exception=AcquireExceptionInfo();
 #if defined(MAGICKCORE_MODULES_SUPPORT)
   InitializeModuleList(exception);
 #endif
   exception=DestroyExceptionInfo(exception);
+  (void) InstantiateLogFacility();
 }
 
 /*
@@ -1277,25 +1319,26 @@
 #if defined(MAGICKCORE_X11_DELEGATE)
   DestroyXResources();
 #endif
-  DestroyConstitute();
-  DestroyMimeList();
-  DestroyConfigureList();
-  DestroyTypeList();
-  DestroyColorList();
+  DestroyConstituteFacility();
+  DestroyMimeFacility();
+  DestroyConfigureFacility();
+  DestroyTypeFacility();
+  DestroyColorFacility();
 #if defined(__WINDOWS__)
   NTGhostscriptUnLoadDLL();
 #endif
-  DestroyMagicList();
-  DestroyDelegateList();
-  DestroyMagickList();
-  DestroyCoderList();
-  DestroyMagickResources();
-  DestroyImageRegistry();
-  DestroyPixelCacheResources();
-  DestroyPolicyList();
-  DestroyRandomReservoir();
-  DestroyLocaleList();
-  DestroyLogList();
+  DestroyMagicFacility();
+  DestroyDelegateFacility();
+  DestroyMagickFacility();
+  DestroyCoderFacility();
+  DestroyResourceFacility();
+  DestroyRegistryFacility();
+  DestroyCacheFaclity();
+  DestroyPolicyFacility();
+  DestroyRandomFacility();
+  DestroyLocaleFacility();
+  DestroyLogFacility();
+  DestroySemaphoreFacility();
   instantiate_magick=MagickFalse;
 }
 
diff --git a/magick/magick.h b/magick/magick.h
index af44c3a..382b5ef 100644
--- a/magick/magick.h
+++ b/magick/magick.h
@@ -112,6 +112,7 @@
   GetMagickEndianSupport(const MagickInfo *),
   GetMagickRawSupport(const MagickInfo *),
   GetMagickSeekableStream(const MagickInfo *),
+  InstantiateMagickFacility(void),
   IsMagickInstantiated(void),
   UnregisterMagickInfo(const char *);
 
@@ -127,7 +128,7 @@
   GetMagickThreadSupport(const MagickInfo *);
 
 extern MagickExport void
-  DestroyMagickList(void),
+  DestroyMagickFacility(void),
   MagickCoreGenesis(const char *,const MagickBooleanType),
   MagickCoreTerminus(void);
 
diff --git a/magick/methods.h b/magick/methods.h
index b9195c0..d26e290 100644
--- a/magick/methods.h
+++ b/magick/methods.h
@@ -107,7 +107,7 @@
 #define Ascii85Encode  PrependMagickMethod(Ascii85Encode)
 #define Ascii85Flush  PrependMagickMethod(Ascii85Flush)
 #define Ascii85Initialize  PrependMagickMethod(Ascii85Initialize)
-#define AsynchronousDestroyMagickResources  PrependMagickMethod(AsynchronousDestroyMagickResources)
+#define AsynchronousDestroyResourceFacility  PrependMagickMethod(AsynchronousDestroyResourceFacility)
 #define AttachBlob  PrependMagickMethod(AttachBlob)
 #define AverageImages  PrependMagickMethod(AverageImages)
 #define Base64Decode  PrependMagickMethod(Base64Decode)
@@ -223,12 +223,12 @@
 #define DespeckleImage  PrependMagickMethod(DespeckleImage)
 #define DestroyBlob  PrependMagickMethod(DestroyBlob)
 #define DestroyCacheView  PrependMagickMethod(DestroyCacheView)
-#define DestroyCoderList  PrependMagickMethod(DestroyCoderList)
-#define DestroyColorList  PrependMagickMethod(DestroyColorList)
-#define DestroyConfigureList  PrependMagickMethod(DestroyConfigureList)
+#define DestroyCoderFacility  PrependMagickMethod(DestroyCoderFacility)
+#define DestroyColorFacility  PrependMagickMethod(DestroyColorFacility)
+#define DestroyConfigureFacility  PrependMagickMethod(DestroyConfigureFacility)
 #define DestroyConfigureOptions  PrependMagickMethod(DestroyConfigureOptions)
-#define DestroyConstitute  PrependMagickMethod(DestroyConstitute)
-#define DestroyDelegateList  PrependMagickMethod(DestroyDelegateList)
+#define DestroyConstituteFacility  PrependMagickMethod(DestroyConstituteFacility)
+#define DestroyDelegateFacility  PrependMagickMethod(DestroyDelegateFacility)
 #define DestroyDrawInfo  PrependMagickMethod(DestroyDrawInfo)
 #define DestroyExceptionInfo  PrependMagickMethod(DestroyExceptionInfo)
 #define DestroyFxInfo  PrependMagickMethod(DestroyFxInfo)
@@ -242,28 +242,28 @@
 #define DestroyImage  PrependMagickMethod(DestroyImage)
 #define DestroyImageProfiles  PrependMagickMethod(DestroyImageProfiles)
 #define DestroyImageProperties  PrependMagickMethod(DestroyImageProperties)
-#define DestroyImageRegistry  PrependMagickMethod(DestroyImageRegistry)
+#define DestroyRegistryFacility  PrependMagickMethod(DestroyRegistryFacility)
 #define DestroyImages  PrependMagickMethod(DestroyImages)
 #define DestroyLinkedList  PrependMagickMethod(DestroyLinkedList)
-#define DestroyLocaleList  PrependMagickMethod(DestroyLocaleList)
+#define DestroyLocaleFacility  PrependMagickMethod(DestroyLocaleFacility)
 #define DestroyLocaleOptions  PrependMagickMethod(DestroyLocaleOptions)
-#define DestroyLogList  PrependMagickMethod(DestroyLogList)
-#define DestroyMagickList  PrependMagickMethod(DestroyMagickList)
+#define DestroyLogFacility  PrependMagickMethod(DestroyLogFacility)
+#define DestroyMagickFacility  PrependMagickMethod(DestroyMagickFacility)
 #define DestroyMagickMemory  PrependMagickMethod(DestroyMagickMemory)
 #define DestroyMagick  PrependMagickMethod(DestroyMagick)
 #define DestroyMagickRegistry  PrependMagickMethod(DestroyMagickRegistry)
-#define DestroyMagickResources  PrependMagickMethod(DestroyMagickResources)
-#define DestroyMagicList  PrependMagickMethod(DestroyMagicList)
-#define DestroyMimeList  PrependMagickMethod(DestroyMimeList)
+#define DestroyResourceFacility  PrependMagickMethod(DestroyResourceFacility)
+#define DestroyMagicFacility  PrependMagickMethod(DestroyMagicFacility)
+#define DestroyMimeFacility  PrependMagickMethod(DestroyMimeFacility)
 #define DestroyMontageInfo  PrependMagickMethod(DestroyMontageInfo)
 #define DestroyPixelCache  PrependMagickMethod(DestroyPixelCache)
 #define DestroyPixelCacheNexus  PrependMagickMethod(DestroyPixelCacheNexus)
-#define DestroyPixelCacheResources  PrependMagickMethod(DestroyPixelCacheResources)
-#define DestroyPolicyList  PrependMagickMethod(DestroyPolicyList)
+#define DestroyCacheFaclity  PrependMagickMethod(DestroyCacheFaclity)
+#define DestroyPolicyFacility  PrependMagickMethod(DestroyPolicyFacility)
 #define DestroyQuantizeInfo  PrependMagickMethod(DestroyQuantizeInfo)
 #define DestroyQuantumInfo  PrependMagickMethod(DestroyQuantumInfo)
 #define DestroyRandomInfo  PrependMagickMethod(DestroyRandomInfo)
-#define DestroyRandomReservoir  PrependMagickMethod(DestroyRandomReservoir)
+#define DestroyRandomFacility  PrependMagickMethod(DestroyRandomFacility)
 #define DestroyResampleFilter  PrependMagickMethod(DestroyResampleFilter)
 #define DestroyResizeFilter  PrependMagickMethod(DestroyResizeFilter)
 #define DestroySemaphoreInfo  PrependMagickMethod(DestroySemaphoreInfo)
@@ -277,7 +277,7 @@
 #define DestroyThresholdMap  PrependMagickMethod(DestroyThresholdMap)
 #define DestroyTimerInfo  PrependMagickMethod(DestroyTimerInfo)
 #define DestroyTokenInfo  PrependMagickMethod(DestroyTokenInfo)
-#define DestroyTypeList  PrependMagickMethod(DestroyTypeList)
+#define DestroyTypeFacility  PrependMagickMethod(DestroyTypeFacility)
 #define DestroyXMLTree  PrependMagickMethod(DestroyXMLTree)
 #define DestroyXResources  PrependMagickMethod(DestroyXResources)
 #define DestroyXWidget  PrependMagickMethod(DestroyXWidget)
@@ -622,7 +622,7 @@
 #define InheritException  PrependMagickMethod(InheritException)
 #define InitializeMagick  PrependMagickMethod(InitializeMagick)
 #define InitializeMagickResources  PrependMagickMethod(InitializeMagickResources)
-#define InitializeSemaphore  PrependMagickMethod(InitializeSemaphore)
+#define InstantiateSemaphoreFacility  PrependMagickMethod(InstantiateSemaphoreFacility)
 #define InitializeSignature  PrependMagickMethod(InitializeSignature)
 #define InjectImageBlob  PrependMagickMethod(InjectImageBlob)
 #define InsertImageInList  PrependMagickMethod(InsertImageInList)
diff --git a/magick/mime.c b/magick/mime.c
index eea6e84..90e1c50 100644
--- a/magick/mime.c
+++ b/magick/mime.c
@@ -131,17 +131,17 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   D e s t r o y M i m e L i s t                                             %
++   D e s t r o y M i m e F a c i l i t y                                     %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  DestroyMimeList() deallocates memory associated with the mime list.
+%  DestroyMimeFacility() destroys the mime facility.
 %
-%  The format of the DestroyMimeList method is:
+%  The format of the DestroyMimeFacility method is:
 %
-%      DestroyMimeList(void)
+%      DestroyMimeFacility(void)
 %
 */
 
@@ -165,7 +165,7 @@
   return((void *) NULL);
 }
 
-MagickExport void DestroyMimeList(void)
+MagickExport void DestroyMimeFacility(void)
 {
   AcquireSemaphoreInfo(&mime_semaphore);
   if (mime_list != (LinkedListInfo *) NULL)
@@ -670,6 +670,31 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   I n s t a n t i a t e M i m e F a c i l i t y                             %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  InstantiateMimeFacility() instantiates the mime facility.
+%
+%  The format of the InstantiateMimeFacility method is:
+%
+%      MagickBooleanType InstantiateMimeFacility(void)
+%
+*/
+MagickExport MagickBooleanType InstantiateMimeFacility(void)
+{
+  AcquireSemaphoreInfo(&mime_semaphore);
+  RelinquishSemaphoreInfo(mime_semaphore);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %  L i s t M i m e I n f o                                                    %
 %                                                                             %
 %                                                                             %
diff --git a/magick/mime.h b/magick/mime.h
index 81ec707..1c6ae62 100644
--- a/magick/mime.h
+++ b/magick/mime.h
@@ -34,6 +34,7 @@
   *GetMimeType(const MimeInfo *);
 
 extern MagickExport MagickBooleanType
+  InstantiateMimeFacility(void),
   ListMimeInfo(FILE *,ExceptionInfo *),
   LoadMimeLists(const char *,ExceptionInfo *);
 
@@ -42,7 +43,7 @@
   **GetMimeInfoList(const char *,unsigned long *,ExceptionInfo *);
 
 extern MagickExport void
-  DestroyMimeList(void);
+  DestroyMimeFacility(void);
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
diff --git a/magick/module.c b/magick/module.c
index 934bdbf..259c777 100644
--- a/magick/module.c
+++ b/magick/module.c
@@ -884,6 +884,31 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   I n s t a n t i a t e M o d u l e F a c i l i t y                         %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  InstantiateModuleFacility() instantiates the module facility.
+%
+%  The format of the InstantiateModuleFacility method is:
+%
+%      MagickBooleanType InstantiateModuleFacility(void)
+%
+*/
+MagickExport MagickBooleanType InstantiateModuleFacility(void)
+{
+  AcquireSemaphoreInfo(&module_semaphore);
+  RelinquishSemaphoreInfo(module_semaphore);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   I n v o k e D y n a m i c I m a g e F i l t e r                           %
 %                                                                             %
 %                                                                             %
diff --git a/magick/module.h b/magick/module.h
index fbbfb99..c781e2f 100644
--- a/magick/module.h
+++ b/magick/module.h
@@ -74,6 +74,7 @@
 
 extern MagickExport MagickBooleanType
   InitializeModuleList(ExceptionInfo *),
+  InstantiateModuleFacility(void),
   InvokeDynamicImageFilter(const char *,Image **,const int,const char **,
     ExceptionInfo *),
   ListModuleInfo(FILE *,ExceptionInfo *),
diff --git a/magick/nt-base.c b/magick/nt-base.c
index 071a2cd..a6b8487 100644
--- a/magick/nt-base.c
+++ b/magick/nt-base.c
@@ -350,7 +350,7 @@
 static BOOL ControlHandler(DWORD type)
 {
   (void) type;
-  AsynchronousDestroyMagickResources();
+  AsynchronousDestroyResourceFacility();
   return(FALSE);
 }
 
diff --git a/magick/policy.c b/magick/policy.c
index e4cc4d8..a6701e1 100644
--- a/magick/policy.c
+++ b/magick/policy.c
@@ -124,17 +124,17 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   D e s t r o y P o l i c y L i s t                                         %
++   D e s t r o y P o l i c y F a c i l i t y                                 %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  DestroyPolicyList() deallocates memory associated with the policy list.
+%  DestroyPolicyFacility() destroys the policy facility.
 %
-%  The format of the DestroyPolicyList method is:
+%  The format of the DestroyPolicyFacility method is:
 %
-%      DestroyPolicyList(void)
+%      DestroyPolicyFacility(void)
 %
 */
 
@@ -156,7 +156,7 @@
   return((void *) NULL);
 }
 
-MagickExport void DestroyPolicyList(void)
+MagickExport void DestroyPolicyFacility(void)
 {
   AcquireSemaphoreInfo(&policy_semaphore);
   if (policy_list != (LinkedListInfo *) NULL)
@@ -479,6 +479,31 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   I n s t a n t i a t e P o l i c y F a c i l i t y                         %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  InstantiatePolicyFacility() instantiates the policy facility.
+%
+%  The format of the InstantiatePolicyFacility method is:
+%
+%      MagickBooleanType InstantiatePolicyFacility(void)
+%
+*/
+MagickExport MagickBooleanType InstantiatePolicyFacility(void)
+{
+  AcquireSemaphoreInfo(&policy_semaphore);
+  RelinquishSemaphoreInfo(policy_semaphore);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   I s R i g h t s A u t h o r i z e d                                       %
 %                                                                             %
 %                                                                             %
diff --git a/magick/policy.h b/magick/policy.h
index d8ad7bd..17a3ab1 100644
--- a/magick/policy.h
+++ b/magick/policy.h
@@ -55,11 +55,12 @@
   **GetPolicyInfoList(const char *,unsigned long *,ExceptionInfo *);
 
 extern MagickExport MagickBooleanType
+  InstantiatePolicyFacility(void),
   IsRightsAuthorized(const PolicyDomain,const PolicyRights,const char *),
   ListPolicyInfo(FILE *,ExceptionInfo *);
 
 extern MagickExport void
-  DestroyPolicyList(void);
+  DestroyPolicyFacility(void);
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
diff --git a/magick/random.c b/magick/random.c
index fe0c784..aa3876d 100644
--- a/magick/random.c
+++ b/magick/random.c
@@ -252,6 +252,31 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   D e s t r o y R a n d o m F a c i l i t y                                 %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  DestroyRandomFacility() destroys the random facility.
+%
+%  The format of the DestroyRandomFacility method is:
+%
+%      DestroyRandomFacility(void)
+%
+*/
+MagickExport void DestroyRandomFacility(void)
+{
+  AcquireSemaphoreInfo(&random_semaphore);
+  (void) UnlockSemaphoreInfo(random_semaphore);
+  DestroySemaphoreInfo(&random_semaphore);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 +   D e s t r o y R a n d o m I n f o                                         %
 %                                                                             %
 %                                                                             %
@@ -296,32 +321,6 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   D e s t r o y R a n d o m R e s e r v i o r                               %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  DestroyRandomReservoir() deallocates memory associated with the random
-%  reservoir.
-%
-%  The format of the DestroyRandomReservoir method is:
-%
-%      DestroyRandomReservoir(void)
-%
-*/
-MagickExport void DestroyRandomReservoir(void)
-{
-  AcquireSemaphoreInfo(&random_semaphore);
-  (void) UnlockSemaphoreInfo(random_semaphore);
-  DestroySemaphoreInfo(&random_semaphore);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
 +   G e n e r a t e E n t r o p i c C h a o s                                 %
 %                                                                             %
 %                                                                             %
@@ -715,6 +714,31 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   I n s t a n t i a t e R a n d o m F a c i l i t y                         %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  InstantiateRandomFacility() instantiates the random facility.
+%
+%  The format of the InstantiateRandomFacility method is:
+%
+%      MagickBooleanType InstantiateRandomFacility(void)
+%
+*/
+MagickExport MagickBooleanType InstantiateRandomFacility(void)
+{
+  AcquireSemaphoreInfo(&random_semaphore);
+  RelinquishSemaphoreInfo(random_semaphore);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   S e e d P s e u d o R a n d o m G e n e r a t o r                         %
 %                                                                             %
 %                                                                             %
diff --git a/magick/random_.h b/magick/random_.h
index 867d5e9..35db5ad 100644
--- a/magick/random_.h
+++ b/magick/random_.h
@@ -37,6 +37,9 @@
   GetRandomValue(RandomInfo *),
   GetPseudoRandomValue(RandomInfo *);
 
+extern MagickExport MagickBooleanType
+  InstantiateRandomFacility(void);
+
 extern MagickExport RandomInfo
   *AcquireRandomInfo(void),
   *DestroyRandomInfo(RandomInfo *);
@@ -45,7 +48,7 @@
   *GetRandomKey(RandomInfo *,const size_t);
 
 extern MagickExport void
-  DestroyRandomReservoir(void),
+  DestroyRandomFacility(void),
   SeedPseudoRandomGenerator(const unsigned long),
   SetRandomKey(RandomInfo *,const size_t,unsigned char *),
   SetRandomTrueRandom(const MagickBooleanType);
diff --git a/magick/registry.c b/magick/registry.c
index 4ba56c3..71b2e87 100644
--- a/magick/registry.c
+++ b/magick/registry.c
@@ -71,6 +71,12 @@
 */
 static SplayTreeInfo
   *registry = (SplayTreeInfo *) NULL;
+
+static SemaphoreInfo
+  *registry_semaphore = (SemaphoreInfo *) NULL;
+
+static volatile MagickBooleanType
+  instantiate_registry = MagickFalse;
 
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -157,25 +163,29 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-%   D e s t r o y I m a g e R e g i s t r y                                   %
+%   D e s t r o y R e g i s t r y F a c i l i t y                             %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  DestroyImageRegistry() releases memory associated with the image registry.
+%  DestroyRegistryFacility() destroys the registry facility.
 %
 %  The format of the DestroyDefines method is:
 %
-%      void DestroyImageRegistry(void)
+%      void DestroyRegistryFacility(void)
 %
 */
-MagickExport void DestroyImageRegistry(void)
+MagickExport void DestroyRegistryFacility(void)
 {
+  AcquireSemaphoreInfo(&registry_semaphore);
   if (IsEventLogging() != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
   if (registry != (void *) NULL)
     registry=DestroySplayTree(registry);
+  instantiate_registry=MagickFalse;
+  RelinquishSemaphoreInfo(registry_semaphore);
+  DestroySemaphoreInfo(&registry_semaphore);
 }
 
 /*
@@ -304,6 +314,31 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   I n s t a n t i a t e R e g i s t r y F a c i l i t y                     %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  InstantiateRegistryFacility() instantiates the registry facility.
+%
+%  The format of the InstantiateRegistryFacility method is:
+%
+%      MagickBooleanType InstantiateRegistryFacility(void)
+%
+*/
+MagickExport MagickBooleanType InstantiateRegistryFacility(void)
+{
+  AcquireSemaphoreInfo(&registry_semaphore);
+  RelinquishSemaphoreInfo(registry_semaphore);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   R e m o v e I m a g e R e g i s t r y                                     %
 %                                                                             %
 %                                                                             %
@@ -485,9 +520,19 @@
   registry_info->type=type;
   registry_info->value=clone_value;
   registry_info->signature=MagickSignature;
-  if (registry == (void *) NULL)
-    registry=NewSplayTree(CompareSplayTreeString,RelinquishMagickMemory,
-      DestroyRegistryNode);
+  if ((registry == (SplayTreeInfo *) NULL) &&
+      (instantiate_registry == MagickFalse))
+    {
+      AcquireSemaphoreInfo(&registry_semaphore);
+      if ((registry == (SplayTreeInfo *) NULL) &&
+          (instantiate_registry == MagickFalse))
+        {
+          registry=NewSplayTree(CompareSplayTreeString,RelinquishMagickMemory,
+            DestroyRegistryNode);
+          instantiate_registry=MagickTrue;
+        }
+      RelinquishSemaphoreInfo(registry_semaphore);
+    }
   status=AddValueToSplayTree(registry,ConstantString(key),registry_info);
   return(status);
 }
diff --git a/magick/registry.h b/magick/registry.h
index cf2876c..d525be6 100644
--- a/magick/registry.h
+++ b/magick/registry.h
@@ -36,11 +36,12 @@
 extern MagickExport MagickBooleanType
   DefineImageRegistry(const RegistryType,const char *,ExceptionInfo *),
   DeleteImageRegistry(const char *),
+  InstantiateRegistryFacility(void),
   SetImageRegistry(const RegistryType,const char *,const void *,
     ExceptionInfo *);
 
 extern MagickExport void
-  DestroyImageRegistry(void),
+  DestroyRegistryFacility(void),
   *GetImageRegistry(const RegistryType,const char *,ExceptionInfo *),
   *RemoveImageRegistry(const char *),
   ResetImageRegistryIterator(void);
diff --git a/magick/resource.c b/magick/resource.c
index 1d25b5b..e701f38 100644
--- a/magick/resource.c
+++ b/magick/resource.c
@@ -265,22 +265,22 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   A s y n c h r o n o u s D e s t r o y M a g i c k R e s o u r c e s       %
++   A s y n c h r o n o u s D e s t r o y R e s o u r c e F a c i l i t y     %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  AsynchronousDestroyMagickResources() destroys the resource environment.
-%  It differs from DestroyMagickResources() in that it can be called from a
+%  AsynchronousDestroyResourceFacility() destroys the resource environment.
+%  It differs from DestroyResourceFacility() in that it can be called from a
 %  asynchronous signal handler.
 %
-%  The format of the DestroyMagickResources() method is:
+%  The format of the DestroyResourceFacility() method is:
 %
-%      DestroyMagickResources(void)
+%      DestroyResourceFacility(void)
 %
 */
-MagickExport void AsynchronousDestroyMagickResources(void)
+MagickExport void AsynchronousDestroyResourceFacility(void)
 {
   const char
     *path;
@@ -482,20 +482,20 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   D e s t r o y M a g i c k R e s o u r c e s                               %
++   D e s t r o y R e s o u r c e F a c i l i t y                             %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  DestroyMagickResources() destroys the resource environment.
+%  DestroyResourceFacility() destroys the resource facility.
 %
-%  The format of the DestroyMagickResources() method is:
+%  The format of the DestroyResourceFacility() method is:
 %
-%      DestroyMagickResources(void)
+%      DestroyResourceFacility(void)
 %
 */
-MagickExport void DestroyMagickResources(void)
+MagickExport void DestroyResourceFacility(void)
 {
   AcquireSemaphoreInfo(&resource_semaphore);
   if (temporary_resources != (SplayTreeInfo *) NULL)
@@ -657,17 +657,17 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   I n i t i a l i z e M a g i c k R e s o u r c e s                         %
++   I n s t a n t i a t e R e s o u r c e F a c i l i t y                     %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  InitializeMagickResources() initializes the resource environment.
+%  InstantiateResourcesFacility() instantiates the resource facility.
 %
-%  The format of the InitializeMagickResources() method is:
+%  The format of the InstantiateResourcesFacility method is:
 %
-%      InitializeMagickResources(void)
+%      MagickBooleanType InstantiateResourcesFacility(void)
 %
 */
 
@@ -691,7 +691,7 @@
   return((MagickSizeType) value);
 }
 
-MagickExport void InitializeMagickResources(void)
+MagickExport MagickBooleanType InstantiateResourcesFacility(void)
 {
   char
     *limit;
@@ -707,6 +707,7 @@
   /*
     Set Magick resource limits.
   */
+  AcquireSemaphoreInfo(&resource_semaphore);
   pagesize=GetMagickPageSize();
   pages=(-1);
 #if defined(MAGICKCORE_HAVE_SYSCONF) && defined(_SC_PHYS_PAGES)
@@ -803,6 +804,8 @@
       (void) SetMagickResourceLimit(TimeResource,StringToSizeType(limit,100.0));
       limit=DestroyString(limit);
     }
+  RelinquishSemaphoreInfo(resource_semaphore);
+  return(MagickTrue);
 }
 
 /*
diff --git a/magick/resource_.h b/magick/resource_.h
index 7bac7e9..a65204f 100644
--- a/magick/resource_.h
+++ b/magick/resource_.h
@@ -41,8 +41,9 @@
 
 extern MagickExport MagickBooleanType
   AcquireMagickResource(const ResourceType,const MagickSizeType),
-  RelinquishUniqueFileResource(const char *),
+  InstantiateResourcesFacility(void),
   ListMagickResourceInfo(FILE *,ExceptionInfo *),
+  RelinquishUniqueFileResource(const char *),
   SetMagickResourceLimit(const ResourceType,const MagickSizeType);
 
 extern MagickExport MagickSizeType
@@ -50,9 +51,8 @@
   GetMagickResourceLimit(const ResourceType);
 
 extern MagickExport void
-  AsynchronousDestroyMagickResources(void),
-  DestroyMagickResources(void),
-  InitializeMagickResources(void),
+  AsynchronousDestroyResourceFacility(void),
+  DestroyResourceFacility(void),
   RelinquishMagickResource(const ResourceType,const MagickSizeType);
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/magick/semaphore.c b/magick/semaphore.c
index 39834b5..a98f78c 100644
--- a/magick/semaphore.c
+++ b/magick/semaphore.c
@@ -81,6 +81,9 @@
 static long
   semaphore_mutex = 0;
 #endif
+
+static MagickBooleanType
+  instantiate_semaphore = MagickFalse;
 
 /*
   Forward declaractions.
@@ -169,7 +172,7 @@
         semaphore_info=(SemaphoreInfo *) RelinquishAlignedMemory(
           semaphore_info);
         ThrowFatalException(ResourceLimitFatalError,
-          "UnableToInitializeSemaphore");
+          "UnableToInstantiateSemaphoreFacility");
       }
     status=pthread_mutex_init(&semaphore_info->mutex,&mutex_info);
     (void) pthread_mutexattr_destroy(&mutex_info);
@@ -178,7 +181,7 @@
         semaphore_info=(SemaphoreInfo *) RelinquishAlignedMemory(
           semaphore_info);
         ThrowFatalException(ResourceLimitFatalError,
-          "UnableToInitializeSemaphore");
+          "UnableToInstantiateSemaphoreFacility");
       }
   }
 #elif defined(MAGICKCORE_HAVE_WINTHREADS)
@@ -195,26 +198,30 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-%   D e s t r o y S e m a p h o r e                                           %
+%   D e s t r o y S e m a p h o r e F a c i l i t y                           %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  DestroySemaphore() destroys the semaphore environment.
+%  DestroySemaphoreFacility() destroys the semaphore facility.
 %
-%  The format of the DestroySemaphore method is:
+%  The format of the DestroySemaphoreFacility method is:
 %
-%      DestroySemaphore(void)
+%      DestroySemaphoreFacility(void)
 %
 */
-MagickExport void DestroySemaphore(void)
+MagickExport void DestroySemaphoreFacility(void)
 {
 #if defined(MAGICKCORE_HAVE_PTHREAD)
   if (pthread_mutex_destroy(&semaphore_mutex) != 0)
     (void) fprintf(stderr,"pthread_mutex_destroy failed %s\n",
       GetExceptionMessage(errno));
+#elif defined(MAGICKCORE_HAVE_WINTHREADS)
+  if (instantiate_semaphore == MagickFalse)
+    DeleteCriticalSection(&semaphore_mutex);
 #endif
+  instantiate_semaphore=MagickFalse;
 }
 
 /*
@@ -260,21 +267,24 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-%   I n i t i a l i z e S e m a p h o r e                                     %
+%   I n s t a n t i a t e S e m a p h o r e                                   %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  InitializeSemaphore() initializes the semaphore environment.
+%  InstantiateSemaphoreFacility() instantiates the semaphore environment.
 %
-%  The format of the InitializeSemaphore method is:
+%  The format of the InstantiateSemaphoreFacility method is:
 %
-%      InitializeSemaphore(void)
+%      MagickBooleanType InstantiateSemaphoreFacility(void)
 %
 */
-MagickExport void InitializeSemaphore(void)
+MagickExport MagickBooleanType InstantiateSemaphoreFacility(void)
 {
+  LockMagickMutex();
+  UnlockMagickMutex();
+  return(MagickTrue);
 }
 
 /*
@@ -303,6 +313,9 @@
     (void) fprintf(stderr,"pthread_mutex_lock failed %s\n",
       GetExceptionMessage(errno));
 #elif defined(MAGICKCORE_HAVE_WINTHREADS)
+  if (instantiate_semaphore == MagickFalse)
+    InitializeCriticalSection(&semaphore_mutex);
+  instantiate_semaphore=MagickTrue;
   while (InterlockedCompareExchange(&semaphore_mutex,1L,0L) != 0)
     Sleep(10);
 #endif
diff --git a/magick/semaphore.h b/magick/semaphore.h
index acd4d48..4d09deb 100644
--- a/magick/semaphore.h
+++ b/magick/semaphore.h
@@ -26,6 +26,7 @@
   SemaphoreInfo;
 
 extern MagickExport MagickBooleanType
+  InstantiateSemaphoreFacility(void),
   LockSemaphoreInfo(SemaphoreInfo *),
   UnlockSemaphoreInfo(SemaphoreInfo *);
 
@@ -34,9 +35,8 @@
 
 extern MagickExport void
   AcquireSemaphoreInfo(SemaphoreInfo **),
-  DestroySemaphore(void),
+  DestroySemaphoreFacility(void),
   DestroySemaphoreInfo(SemaphoreInfo **),
-  InitializeSemaphore(void),
   RelinquishSemaphoreInfo(SemaphoreInfo *);
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/magick/type.c b/magick/type.c
index fa7eaf4..1f8e48d 100644
--- a/magick/type.c
+++ b/magick/type.c
@@ -133,20 +133,20 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   D e s t r o y T y p e L i s t                                             %
++   D e s t r o y T y p e F a c i l i t y                                     %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  DestroyTypeList() deallocates memory associated with the font list.
+%  DestroyTypeFacility() destroy type facility.
 %
-%  The format of the DestroyTypeList method is:
+%  The format of the DestroyTypeFacility method is:
 %
-%      void DestroyTypeList(void)
+%      void DestroyTypeFacility(void)
 %
 */
-MagickExport void DestroyTypeList(void)
+MagickExport void DestroyTypeFacility(void)
 {
   AcquireSemaphoreInfo(&type_semaphore);
   if (type_list != (SplayTreeInfo *) NULL)
@@ -822,6 +822,31 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   I n s t a n t i a t e T y p e F a c i l i t y                             %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  InstantiateTypeFacility() instantiates the type facility.
+%
+%  The format of the InstantiateTypeFacility method is:
+%
+%      MagickBooleanType InstantiateTypeFacility(void)
+%
+*/
+MagickExport MagickBooleanType InstantiateTypeFacility(void)
+{
+  AcquireSemaphoreInfo(&type_semaphore);
+  RelinquishSemaphoreInfo(type_semaphore);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %  L i s t T y p e I n f o                                                    %
 %                                                                             %
 %                                                                             %
diff --git a/magick/type.h b/magick/type.h
index d4d1db5..35a957d 100644
--- a/magick/type.h
+++ b/magick/type.h
@@ -88,6 +88,7 @@
   **GetTypeList(const char *,unsigned long *,ExceptionInfo *);
 
 extern MagickExport MagickBooleanType
+  InstantiateTypeFacility(void),
   ListTypeInfo(FILE *,ExceptionInfo *);
 
 extern MagickExport const TypeInfo
@@ -97,7 +98,7 @@
   **GetTypeInfoList(const char *,unsigned long *,ExceptionInfo *);
 
 MagickExport void
-  DestroyTypeList(void);
+  DestroyTypeFacility(void);
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
diff --git a/magick/version.h b/magick/version.h
index c1e9c1a..2156d65 100644
--- a/magick/version.h
+++ b/magick/version.h
@@ -31,8 +31,8 @@
 #define MagickLibVersionText  "6.5.7"
 #define MagickLibVersionNumber  2,0,0
 #define MagickLibSubversion  "-1"
-#define MagickReleaseDate  "2009-10-17"
-#define MagickChangeDate   "20091014"
+#define MagickReleaseDate  "2009-10-18"
+#define MagickChangeDate   "20091018"
 #define MagickAuthoritativeURL  "http://www.imagemagick.org"
 #define MagickHomeURL  "file:///usr/local/share/doc/ImageMagick-6.5.7/index.html"
 #if (MAGICKCORE_QUANTUM_DEPTH == 8)