diff --git a/config/configure.xml b/config/configure.xml
index 50c7041..af8117a 100644
--- a/config/configure.xml
+++ b/config/configure.xml
@@ -9,7 +9,7 @@
   <configure name="NAME" value="ImageMagick"/>
   <configure name="LIB_VERSION" value="0x665"/>
   <configure name="LIB_VERSION_NUMBER" value="6,6,5,1"/>
-  <configure name="RELEASE_DATE" value="2010-10-14"/>
+  <configure name="RELEASE_DATE" value="2010-10-16"/>
   <configure name="CONFIGURE" value="./configure "/>
   <configure name="PREFIX" value="/usr/local"/>
   <configure name="EXEC-PREFIX" value="/usr/local"/>
diff --git a/config/delegates.xml b/config/delegates.xml
index 8da9122..74b287d 100644
--- a/config/delegates.xml
+++ b/config/delegates.xml
@@ -109,7 +109,7 @@
   <delegate decode="svg" command="&quot;rsvg&quot; &quot;%i&quot; &quot;%o&quot;"/>
   <delegate decode="txt" encode="ps" mode="bi" command="&quot;enscript&quot; -o &quot;%o&quot; &quot;%i&quot;"/>
   <delegate decode="miff" encode="win" stealth="True" spawn="True" command="&quot;/usr/local/bin/display&quot; -immutable -delay 0 -window-group %[group] -title &quot;%l of %f&quot; &quot;ephemeral:%i&quot;"/>
-  <delegate decode="webp" command="mv &quot;%i&quot; &quot;%i.webp&quot;;&quot;webpconv&quot; -format PNG &quot;%i.webp&quot;; convert &quot;%i.png&quot; &quot;%o&quot;;rm &quot;%i.webp&quot; &quot;%i.png&quot;"/>
+  <delegate decode="webp" command="cp &quot;%i&quot; &quot;%i.webp&quot;;&quot;webpconv&quot; -format PNG &quot;%i.webp&quot;; convert &quot;%i.png&quot; &quot;%o&quot;;rm &quot;%i.webp&quot; &quot;%i.png&quot;"/>
   <delegate decode="wmf" command="&quot;wmf2eps&quot; -o &quot;%o&quot; &quot;%i&quot;"/>
   <delegate decode="xps:color" stealth="True" command="&quot;gxps&quot; -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=ppmraw&quot; -dTextAlphaBits=%u -dGraphicsAlphaBits=%u &quot;-r%s&quot; %s &quot;-sOutputFile=%s&quot; &quot;%s&quot;"/>
   <delegate decode="xps:cmyk" stealth="True" command="&quot;gxps&quot; -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=bmpsep8&quot; -dTextAlphaBits=%u -dGraphicsAlphaBits=%u &quot;-r%s&quot; %s &quot;-sOutputFile=%s&quot; &quot;%s&quot;"/>
diff --git a/ltdl/ltdl.c b/ltdl/ltdl.c
index 7c42635..5313ed6 100644
--- a/ltdl/ltdl.c
+++ b/ltdl/ltdl.c
@@ -1511,7 +1511,7 @@
 
   assert (filename);
 
-  ext = strrchr (filename, '.');
+  ext = (char *) strrchr (filename, '.');
 
   if (ext && ((streq (ext, archive_ext))
 #if defined(LT_MODULE_EXT)
diff --git a/magick/image.c b/magick/image.c
index 17e09bf..a7652be 100644
--- a/magick/image.c
+++ b/magick/image.c
@@ -1489,6 +1489,9 @@
 */
 MagickExport void GetImageInfo(ImageInfo *image_info)
 {
+  const char
+    *synchronize;
+
   ExceptionInfo
     *exception;
 
@@ -1504,6 +1507,9 @@
   image_info->quality=UndefinedCompressionQuality;
   image_info->antialias=MagickTrue;
   image_info->dither=MagickTrue;
+  synchronize=GetEnvironmentValue("MAGICK_SYNCHRONIZE");
+  if (synchronize != (const char *) NULL)
+    image_info->synchronize=IsMagickTrue(synchronize);
   exception=AcquireExceptionInfo();
   (void) QueryColorDatabase(BackgroundColor,&image_info->background_color,
     exception);
diff --git a/magick/module.c b/magick/module.c
index 59d5191..d441c8c 100644
--- a/magick/module.c
+++ b/magick/module.c
@@ -1639,7 +1639,7 @@
 #else
   {
     extern size_t
-      analyzeImage(Image **,const int,char **,ExceptionInfo *);
+      analyzeImage(Image **,const int,const char **,ExceptionInfo *);
 
     ImageFilterHandler
       *image_filter;
diff --git a/magick/option.c b/magick/option.c
index f3f0f49..709ae54 100644
--- a/magick/option.c
+++ b/magick/option.c
@@ -615,6 +615,10 @@
     { "-swap", 1L, MagickFalse },
     { "+swirl", 0L, MagickFalse },
     { "-swirl", 1L, MagickFalse },
+    { "+synchronize", 0L, MagickFalse },
+    { "-synchronize", 0L, MagickFalse },
+    { "+taint", 0L, MagickFalse },
+    { "-taint", 0L, MagickFalse },
     { "+text-font", 0L, MagickFalse },
     { "-text-font", 1L, MagickFalse },
     { "+texture", 0L, MagickFalse },
diff --git a/magick/version.h b/magick/version.h
index b5110c4..2c5f02f 100644
--- a/magick/version.h
+++ b/magick/version.h
@@ -33,7 +33,7 @@
 #define MagickLibAddendum  "-1"
 #define MagickLibInterface  4
 #define MagickLibMinInterface  4
-#define MagickReleaseDate  "2010-10-14"
+#define MagickReleaseDate  "2010-10-16"
 #define MagickChangeDate   "20101014"
 #define MagickAuthoritativeURL  "http://www.imagemagick.org"
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
diff --git a/utilities/compare.1 b/utilities/compare.1
index 958502c..5370de8 100644
--- a/utilities/compare.1
+++ b/utilities/compare.1
@@ -44,6 +44,8 @@
   \-set attribute value set an image attribute
   \-size geometry       width and height of image
   \-subimage-search     search for subimage
+  \-synchronize         synchronize image to storage device
+  \-taint               declare the image as modified
   \-transparent-color color
                        transparent color
   \-type type           image type
diff --git a/utilities/compare.1.in b/utilities/compare.1.in
index 38d3ece..386ca80 100644
--- a/utilities/compare.1.in
+++ b/utilities/compare.1.in
@@ -44,6 +44,8 @@
   \-set attribute value set an image attribute
   \-size geometry       width and height of image
   \-subimage-search     search for subimage
+  \-synchronize         synchronize image to storage device
+  \-taint               declare the image as modified
   \-transparent-color color
                        transparent color
   \-type type           image type
diff --git a/utilities/composite.1 b/utilities/composite.1
index 682b55e..22716ec 100644
--- a/utilities/composite.1
+++ b/utilities/composite.1
@@ -52,6 +52,8 @@
   \-seed value          seed a new sequence of pseudo-random numbers
   \-size geometry       width and height of image
   \-support factor      resize support: > 1.0 is blurry, < 1.0 is sharp
+  \-synchronize         synchronize image to storage device
+  \-taint               declare the image as modified
   \-transparent-color color
                        transparent color
   \-treedepth value     color tree depth
diff --git a/utilities/composite.1.in b/utilities/composite.1.in
index 7bee28e..2b3788d 100644
--- a/utilities/composite.1.in
+++ b/utilities/composite.1.in
@@ -52,6 +52,8 @@
   \-seed value          seed a new sequence of pseudo-random numbers
   \-size geometry       width and height of image
   \-support factor      resize support: > 1.0 is blurry, < 1.0 is sharp
+  \-synchronize         synchronize image to storage device
+  \-taint               declare the image as modified
   \-transparent-color color
                        transparent color
   \-treedepth value     color tree depth
diff --git a/utilities/convert.1 b/utilities/convert.1
index 58fe750..255737d 100644
--- a/utilities/convert.1
+++ b/utilities/convert.1
@@ -81,6 +81,8 @@
   \-strokewidth value   graphic primitive stroke width
   \-style type          render text with this font style
   \-support factor      resize support: > 1.0 is blurry, < 1.0 is sharp
+  \-synchronize         synchronize image to storage device
+  \-taint               declare the image as modified
   \-texture filename    name of texture to tile onto the image background
   \-tile-offset geometry
                        tile offset
diff --git a/utilities/convert.1.in b/utilities/convert.1.in
index a866b69..a0a1c86 100644
--- a/utilities/convert.1.in
+++ b/utilities/convert.1.in
@@ -81,6 +81,8 @@
   \-strokewidth value   graphic primitive stroke width
   \-style type          render text with this font style
   \-support factor      resize support: > 1.0 is blurry, < 1.0 is sharp
+  \-synchronize         synchronize image to storage device
+  \-taint               declare the image as modified
   \-texture filename    name of texture to tile onto the image background
   \-tile-offset geometry
                        tile offset
diff --git a/utilities/import.1 b/utilities/import.1
index ba2a5a1..2c136d4 100644
--- a/utilities/import.1
+++ b/utilities/import.1
@@ -52,6 +52,8 @@
   \-silent              operate silently, i.e. don't ring any bells 
   \-snaps value         number of screen snapshots
   \-support factor      resize support: > 1.0 is blurry, < 1.0 is sharp
+  \-synchronize         synchronize image to storage device
+  \-taint               declare the image as modified
   \-transparent-color color
                        transparent color
   \-treedepth value     color tree depth
diff --git a/utilities/import.1.in b/utilities/import.1.in
index d3a7970..b6355a9 100644
--- a/utilities/import.1.in
+++ b/utilities/import.1.in
@@ -52,6 +52,8 @@
   \-silent              operate silently, i.e. don't ring any bells 
   \-snaps value         number of screen snapshots
   \-support factor      resize support: > 1.0 is blurry, < 1.0 is sharp
+  \-synchronize         synchronize image to storage device
+  \-taint               declare the image as modified
   \-transparent-color color
                        transparent color
   \-treedepth value     color tree depth
diff --git a/utilities/mogrify.1 b/utilities/mogrify.1
index 3f28952..eda7af9 100644
--- a/utilities/mogrify.1
+++ b/utilities/mogrify.1
@@ -85,6 +85,8 @@
   \-strokewidth value   graphic primitive stroke width
   \-style type          render text with this font style
   \-support factor      resize support: > 1.0 is blurry, < 1.0 is sharp
+  \-synchronize         synchronize image to storage device
+  \-taint               declare the image as modified
   \-texture filename    name of texture to tile onto the image background
   \-tile-offset geometry
                        tile offset
diff --git a/utilities/mogrify.1.in b/utilities/mogrify.1.in
index e94e288..090adba 100644
--- a/utilities/mogrify.1.in
+++ b/utilities/mogrify.1.in
@@ -85,6 +85,8 @@
   \-strokewidth value   graphic primitive stroke width
   \-style type          render text with this font style
   \-support factor      resize support: > 1.0 is blurry, < 1.0 is sharp
+  \-synchronize         synchronize image to storage device
+  \-taint               declare the image as modified
   \-texture filename    name of texture to tile onto the image background
   \-tile-offset geometry
                        tile offset
diff --git a/utilities/montage.1 b/utilities/montage.1
index ccdabeb..7e15f99 100644
--- a/utilities/montage.1
+++ b/utilities/montage.1
@@ -67,6 +67,7 @@
   \-size geometry       width and height of image
   \-stroke color        color to use when stroking a graphic primitive
   \-support factor      resize support: > 1.0 is blurry, < 1.0 is sharp
+  \-synchronize         synchronize image to storage device
   \-texture filename    name of texture to tile onto the image background
   \-thumbnail geometry  create a thumbnail of the image
   \-tile geometry       number of tiles per row and column
diff --git a/utilities/montage.1.in b/utilities/montage.1.in
index b8dc97c..abcbc1e 100644
--- a/utilities/montage.1.in
+++ b/utilities/montage.1.in
@@ -67,6 +67,7 @@
   \-size geometry       width and height of image
   \-stroke color        color to use when stroking a graphic primitive
   \-support factor      resize support: > 1.0 is blurry, < 1.0 is sharp
+  \-synchronize         synchronize image to storage device
   \-texture filename    name of texture to tile onto the image background
   \-thumbnail geometry  create a thumbnail of the image
   \-tile geometry       number of tiles per row and column
diff --git a/utilities/stream.1 b/utilities/stream.1
index 58e6eb2..8a2312e 100644
--- a/utilities/stream.1
+++ b/utilities/stream.1
@@ -34,6 +34,7 @@
   \-set attribute value set an image attribute
   \-size geometry       width and height of image
   \-storage-type type   pixel storage type
+  \-synchronize         synchronize image to storage device
   \-transparent-color color
                        transparent color
   \-verbose             print detailed information about the image
diff --git a/utilities/stream.1.in b/utilities/stream.1.in
index 3d23fe7..65fdc61 100644
--- a/utilities/stream.1.in
+++ b/utilities/stream.1.in
@@ -34,6 +34,7 @@
   \-set attribute value set an image attribute
   \-size geometry       width and height of image
   \-storage-type type   pixel storage type
+  \-synchronize         synchronize image to storage device
   \-transparent-color color
                        transparent color
   \-verbose             print detailed information about the image
diff --git a/wand/compare.c b/wand/compare.c
index ad4aee4..cb10640 100644
--- a/wand/compare.c
+++ b/wand/compare.c
@@ -849,10 +849,14 @@
             subimage_search=MagickTrue;
             break;
           }
+        if (LocaleCompare("synchronize",option+1) == 0)
+          break;
         ThrowCompareException(OptionError,"UnrecognizedOption",option)
       }
       case 't':
       {
+        if (LocaleCompare("taint",option+1) == 0)
+          break;
         if (LocaleCompare("transparent-color",option+1) == 0)
           {
             if (*option == '+')
diff --git a/wand/composite.c b/wand/composite.c
index f2644a4..ee42e24 100644
--- a/wand/composite.c
+++ b/wand/composite.c
@@ -315,6 +315,8 @@
       "-scene value         image scene number",
       "-seed value          seed a new sequence of pseudo-random numbers",
       "-size geometry       width and height of image",
+      "-synchronize         synchronize image to storage device",
+      "-taint               declare the image as modified",
       "-transparent-color color",
       "                     transparent color",
       "-treedepth value     color tree depth",
@@ -1425,10 +1427,14 @@
               ThrowCompositeInvalidArgumentException(option,argv[i]);
             break;
           }
+        if (LocaleCompare("synchronize",option+1) == 0)
+          break;
         ThrowCompositeException(OptionError,"UnrecognizedOption",option)
       }
       case 't':
       {
+        if (LocaleCompare("taint",option+1) == 0)
+          break;
         if (LocaleCompare("thumbnail",option+1) == 0)
           {
             if (*option == '+')
diff --git a/wand/convert.c b/wand/convert.c
index ecef89c..5df6d8b 100644
--- a/wand/convert.c
+++ b/wand/convert.c
@@ -387,7 +387,8 @@
       "-stroke color        graphic primitive stroke color",
       "-strokewidth value   graphic primitive stroke width",
       "-style type          render text with this font style",
-      "-taint               image as ineligible for bi-modal delegate",
+      "-synchronize         synchronize image to storage device",
+      "-taint               declare the image as modified",
       "-texture filename    name of texture to tile onto the image background",
       "-tile-offset geometry",
       "                     tile offset",
@@ -2661,6 +2662,8 @@
               ThrowConvertInvalidArgumentException(option,argv[i]);
             break;
           }
+        if (LocaleCompare("synchronize",option+1) == 0)
+          break;
         ThrowConvertException(OptionError,"UnrecognizedOption",option)
       }
       case 't':
diff --git a/wand/import.c b/wand/import.c
index b897a35..772d404 100644
--- a/wand/import.c
+++ b/wand/import.c
@@ -172,6 +172,8 @@
       "-set property value  set an image property",
       "-silent              operate silently, i.e. don't ring any bells ",
       "-snaps value         number of screen snapshots",
+      "-synchronize         synchronize image to storage device",
+      "-taint               declare the image as modified",
       "-transparent-color color",
       "                     transparent color",
       "-treedepth value     color tree depth",
@@ -1185,10 +1187,14 @@
             i++;  /* deprecated */
             break;
           }
+        if (LocaleCompare("synchronize",option+1) == 0)
+          break;
         ThrowImportException(OptionError,"UnrecognizedOption",option);
       }
       case 't':
       {
+        if (LocaleCompare("taint",option+1) == 0)
+          break;
         if (LocaleCompare("thumnail",option+1) == 0)
           {
             if (*option == '+')
diff --git a/wand/mogrify.c b/wand/mogrify.c
index 78fdff7..a0cada2 100644
--- a/wand/mogrify.c
+++ b/wand/mogrify.c
@@ -3867,7 +3867,8 @@
       "-stroke color        graphic primitive stroke color",
       "-strokewidth value   graphic primitive stroke width",
       "-style type          render text with this font style",
-      "-taint               image as ineligible for bi-modal delegate",
+      "-synchronize         synchronize image to storage device",
+      "-taint               declare the image as modified",
       "-texture filename    name of texture to tile onto the image background",
       "-tile-offset geometry",
       "                     tile offset",
@@ -6063,6 +6064,8 @@
               ThrowMogrifyInvalidArgumentException(option,argv[i]);
             break;
           }
+        if (LocaleCompare("synchronize",option+1) == 0)
+          break;
         ThrowMogrifyException(OptionError,"UnrecognizedOption",option)
       }
       case 't':
@@ -7340,6 +7343,16 @@
             (void) SetImageOption(image_info,option+1,argv[i+1]);
             break;
           }
+        if (LocaleCompare("synchronize",option+1) == 0)
+          {
+            if (*option == '+')
+              {
+                image_info->synchronize=MagickFalse;
+                break;
+              }
+            image_info->synchronize=MagickTrue;
+            break;
+          }
         break;
       }
       case 't':
diff --git a/wand/montage.c b/wand/montage.c
index 5a25eae..5fa2a96 100644
--- a/wand/montage.c
+++ b/wand/montage.c
@@ -187,6 +187,8 @@
       "-shadow              add a shadow beneath a tile to simulate depth",
       "-size geometry       width and height of image",
       "-stroke color        color to use when stroking a graphic primitive",
+      "-synchronize         synchronize image to storage device",
+      "-taint               declare the image as modified",
       "-texture filename    name of texture to tile onto the image background",
       "-thumbnail geometry  create a thumbnail of the image",
       "-tile geometry       number of tiles per row and column",
@@ -1492,10 +1494,14 @@
             i++;  /* deprecated */
             break;
           }
+        if (LocaleCompare("synchronize",option+1) == 0)
+          break;
         ThrowMontageException(OptionError,"UnrecognizedOption",option)
       }
       case 't':
       {
+        if (LocaleCompare("taint",option+1) == 0)
+          break;
         if (LocaleCompare("texture",option+1) == 0)
           {
             (void) CloneString(&montage_info->texture,(char *) NULL);
diff --git a/wand/stream.c b/wand/stream.c
index 362253d..95e4853 100644
--- a/wand/stream.c
+++ b/wand/stream.c
@@ -127,6 +127,8 @@
       "-set attribute value set an image attribute",
       "-size geometry       width and height of image",
       "-storage-type type   pixel storage type",
+      "-synchronize         synchronize image to storage device",
+      "-taint               declare the image as modified",
       "-transparent-color color",
       "                     transparent color",
       "-verbose             print detailed information about the image",
@@ -688,10 +690,14 @@
             SetStreamInfoStorageType(stream_info,(StorageType) type);
             break;
           }
+        if (LocaleCompare("synchronize",option+1) == 0)
+          break;
         ThrowStreamException(OptionError,"UnrecognizedOption",option)
       }
       case 't':
       {
+        if (LocaleCompare("taint",option+1) == 0)
+          break;
         if (LocaleCompare("transparent-color",option+1) == 0)
           {
             if (*option == '+')
