diff --git a/MagickCore/annotate.c b/MagickCore/annotate.c
index 4e96da2..2cc2968 100644
--- a/MagickCore/annotate.c
+++ b/MagickCore/annotate.c
@@ -1246,7 +1246,7 @@
       draw_info->encoding != (char *) NULL ? draw_info->encoding : "none",
       draw_info->pointsize);
   flags=FT_LOAD_NO_BITMAP;
-  value=GetImageProperty(image,"type:hinting");
+  value=GetImageProperty(image,"type:hinting",exception);
   if ((value != (const char *) NULL) && (LocaleCompare(value,"off") == 0))
     flags|=FT_LOAD_NO_HINTING;
   glyph.id=0;
diff --git a/MagickCore/cipher.c b/MagickCore/cipher.c
index 5101425..b7bf02f 100644
--- a/MagickCore/cipher.c
+++ b/MagickCore/cipher.c
@@ -837,9 +837,9 @@
   (void) CopyMagickMemory(input_block,digest,MagickMin(AESBlocksize,
     GetSignatureDigestsize(signature_info))*sizeof(*input_block));
   signature=StringInfoToHexString(GetSignatureDigest(signature_info));
-  (void) SetImageProperty(image,"cipher:type","AES");
-  (void) SetImageProperty(image,"cipher:mode","CFB");
-  (void) SetImageProperty(image,"cipher:nonce",signature);
+  (void) SetImageProperty(image,"cipher:type","AES",exception);
+  (void) SetImageProperty(image,"cipher:mode","CFB",exception);
+  (void) SetImageProperty(image,"cipher:nonce",signature,exception);
   signature=DestroyString(signature);
   signature_info=DestroySignatureInfo(signature_info);
   /*
diff --git a/MagickCore/colorspace.c b/MagickCore/colorspace.c
index b808a63..9b477f6 100644
--- a/MagickCore/colorspace.c
+++ b/MagickCore/colorspace.c
@@ -619,20 +619,20 @@
       */
       density=DisplayGamma;
       gamma=DisplayGamma;
-      value=GetImageProperty(image,"gamma");
+      value=GetImageProperty(image,"gamma",exception);
       if (value != (const char *) NULL)
         gamma=1.0/fabs(InterpretLocaleValue(value,(char **) NULL)) >=
           MagickEpsilon ? InterpretLocaleValue(value,(char **) NULL) : 1.0;
       film_gamma=FilmGamma;
-      value=GetImageProperty(image,"film-gamma");
+      value=GetImageProperty(image,"film-gamma",exception);
       if (value != (const char *) NULL)
         film_gamma=InterpretLocaleValue(value,(char **) NULL);
       reference_black=ReferenceBlack;
-      value=GetImageProperty(image,"reference-black");
+      value=GetImageProperty(image,"reference-black",exception);
       if (value != (const char *) NULL)
         reference_black=InterpretLocaleValue(value,(char **) NULL);
       reference_white=ReferenceWhite;
-      value=GetImageProperty(image,"reference-white");
+      value=GetImageProperty(image,"reference-white",exception);
       if (value != (const char *) NULL)
         reference_white=InterpretLocaleValue(value,(char **) NULL);
       logmap=(Quantum *) AcquireQuantumMemory((size_t) MaxMap+1UL,
@@ -2067,20 +2067,20 @@
       */
       density=DisplayGamma;
       gamma=DisplayGamma;
-      value=GetImageProperty(image,"gamma");
+      value=GetImageProperty(image,"gamma",exception);
       if (value != (const char *) NULL)
         gamma=1.0/fabs(InterpretLocaleValue(value,(char **) NULL)) >=
           MagickEpsilon ? InterpretLocaleValue(value,(char **) NULL) : 1.0;
       film_gamma=FilmGamma;
-      value=GetImageProperty(image,"film-gamma");
+      value=GetImageProperty(image,"film-gamma",exception);
       if (value != (const char *) NULL)
         film_gamma=InterpretLocaleValue(value,(char **) NULL);
       reference_black=ReferenceBlack;
-      value=GetImageProperty(image,"reference-black");
+      value=GetImageProperty(image,"reference-black",exception);
       if (value != (const char *) NULL)
         reference_black=InterpretLocaleValue(value,(char **) NULL);
       reference_white=ReferenceWhite;
-      value=GetImageProperty(image,"reference-white");
+      value=GetImageProperty(image,"reference-white",exception);
       if (value != (const char *) NULL)
         reference_white=InterpretLocaleValue(value,(char **) NULL);
       logmap=(Quantum *) AcquireQuantumMemory((size_t) MaxMap+1UL,
diff --git a/MagickCore/constitute.c b/MagickCore/constitute.c
index baabf5a..ccb5a7c 100644
--- a/MagickCore/constitute.c
+++ b/MagickCore/constitute.c
@@ -647,16 +647,16 @@
       next->magick_columns=next->columns;
     if (next->magick_rows == 0)
       next->magick_rows=next->rows;
-    value=GetImageProperty(next,"tiff:Orientation");
+    value=GetImageProperty(next,"tiff:Orientation",exception);
     if (value == (char *) NULL)
-      value=GetImageProperty(next,"exif:Orientation");
+      value=GetImageProperty(next,"exif:Orientation",exception);
     if (value != (char *) NULL)
       {
         next->orientation=(OrientationType) StringToLong(value);
         (void) DeleteImageProperty(next,"tiff:Orientation");
         (void) DeleteImageProperty(next,"exif:Orientation");
       }
-    value=GetImageProperty(next,"exif:XResolution");
+    value=GetImageProperty(next,"exif:XResolution",exception);
     if (value != (char *) NULL)
       {
         geometry_info.rho=next->x_resolution;
@@ -666,7 +666,7 @@
           next->x_resolution=geometry_info.rho/geometry_info.sigma;
         (void) DeleteImageProperty(next,"exif:XResolution");
       }
-    value=GetImageProperty(next,"exif:YResolution");
+    value=GetImageProperty(next,"exif:YResolution",exception);
     if (value != (char *) NULL)
       {
         geometry_info.rho=next->y_resolution;
@@ -676,9 +676,9 @@
           next->y_resolution=geometry_info.rho/geometry_info.sigma;
         (void) DeleteImageProperty(next,"exif:YResolution");
       }
-    value=GetImageProperty(next,"tiff:ResolutionUnit");
+    value=GetImageProperty(next,"tiff:ResolutionUnit",exception);
     if (value == (char *) NULL)
-      value=GetImageProperty(next,"exif:ResolutionUnit");
+      value=GetImageProperty(next,"exif:ResolutionUnit",exception);
     if (value != (char *) NULL)
       {
         next->units=(ResolutionType) (StringToLong(value)-1);
@@ -693,21 +693,21 @@
     if (option != (const char *) NULL)
       {
         property=InterpretImageProperties(read_info,next,option,exception);
-        (void) SetImageProperty(next,"caption",property);
+        (void) SetImageProperty(next,"caption",property,exception);
         property=DestroyString(property);
       }
     option=GetImageOption(read_info,"comment");
     if (option != (const char *) NULL)
       {
         property=InterpretImageProperties(read_info,next,option,exception);
-        (void) SetImageProperty(next,"comment",property);
+        (void) SetImageProperty(next,"comment",property,exception);
         property=DestroyString(property);
       }
     option=GetImageOption(read_info,"label");
     if (option != (const char *) NULL)
       {
         property=InterpretImageProperties(read_info,next,option,exception);
-        (void) SetImageProperty(next,"label",property);
+        (void) SetImageProperty(next,"label",property,exception);
         property=DestroyString(property);
       }
     if (LocaleCompare(next->magick,"TEXT") == 0)
@@ -754,10 +754,10 @@
       profile=GetImageProfile(next,"8bim");
     (void) FormatMagickTime(GetBlobProperties(next)->st_mtime,MaxTextExtent,
       timestamp);
-    (void) SetImageProperty(next,"date:modify",timestamp);
+    (void) SetImageProperty(next,"date:modify",timestamp,exception);
     (void) FormatMagickTime(GetBlobProperties(next)->st_ctime,MaxTextExtent,
       timestamp);
-    (void) SetImageProperty(next,"date:create",timestamp);
+    (void) SetImageProperty(next,"date:create",timestamp,exception);
     option=GetImageOption(image_info,"delay");
     if (option != (const char *) NULL)
       {
diff --git a/MagickCore/display.c b/MagickCore/display.c
index a05a1da..fb71902 100644
--- a/MagickCore/display.c
+++ b/MagickCore/display.c
@@ -8971,7 +8971,7 @@
       if (unique_file == -1)
         XNoticeWidget(display,windows,"Unable to edit image comment",
           image_info->filename);
-      value=GetImageProperty(*image,"comment");
+      value=GetImageProperty(*image,"comment",exception);
       if (value == (char *) NULL)
         unique_file=close(unique_file)-1;
       else
@@ -9006,7 +9006,7 @@
           comment=FileToString(image_info->filename,~0UL,exception);
           if (comment != (char *) NULL)
             {
-              (void) SetImageProperty(*image,"comment",comment);
+              (void) SetImageProperty(*image,"comment",comment,exception);
               (*image)->taint=MagickTrue;
             }
         }
@@ -9099,7 +9099,7 @@
         ParseCommandOption(MagickPreviewOptions,MagickFalse,preview_type);
       image_info->group=(ssize_t) windows->image.id;
       (void) DeleteImageProperty(*image,"label");
-      (void) SetImageProperty(*image,"label","Preview");
+      (void) SetImageProperty(*image,"label","Preview",exception);
       (void) AcquireUniqueFilename(filename);
       (void) FormatLocaleString((*image)->filename,MaxTextExtent,"preview:%s",
         filename);
@@ -9132,7 +9132,7 @@
       XCheckRefreshWindows(display,windows);
       image_info->group=(ssize_t) windows->image.id;
       (void) DeleteImageProperty(*image,"label");
-      (void) SetImageProperty(*image,"label","Histogram");
+      (void) SetImageProperty(*image,"label","Histogram",exception);
       (void) AcquireUniqueFilename(filename);
       (void) FormatLocaleString((*image)->filename,MaxTextExtent,"histogram:%s",
         filename);
@@ -9171,7 +9171,7 @@
       XCheckRefreshWindows(display,windows);
       image_info->group=(ssize_t) windows->image.id;
       (void) DeleteImageProperty(*image,"label");
-      (void) SetImageProperty(*image,"label","Matte");
+      (void) SetImageProperty(*image,"label","Matte",exception);
       (void) AcquireUniqueFilename(filename);
       (void) FormatLocaleString((*image)->filename,MaxTextExtent,"matte:%s",
         filename);
@@ -13682,7 +13682,7 @@
       {
         (void) DeleteImageProperty(next_image,"label");
         (void) SetImageProperty(next_image,"label",InterpretImageProperties(
-          read_info,next_image,DefaultTileLabel,exception));
+          read_info,next_image,DefaultTileLabel,exception),exception);
         (void) ParseRegionGeometry(next_image,read_info->size,&geometry,
           exception);
         thumbnail_image=ThumbnailImage(next_image,geometry.width,
diff --git a/MagickCore/effect.c b/MagickCore/effect.c
index df1be8d..b7757a6 100644
--- a/MagickCore/effect.c
+++ b/MagickCore/effect.c
@@ -2401,7 +2401,7 @@
       break;
     (void) SetImageProgressMonitor(thumbnail,(MagickProgressMonitor) NULL,
       (void *) NULL);
-    (void) SetImageProperty(thumbnail,"label",DefaultTileLabel);
+    (void) SetImageProperty(thumbnail,"label",DefaultTileLabel,exception);
     if (i == (NumberTiles/2))
       {
         (void) QueryColorCompliance("#dfdfdf",AllCompliance,
@@ -2784,7 +2784,7 @@
     if (preview_image == (Image *) NULL)
       break;
     (void) DeleteImageProperty(preview_image,"label");
-    (void) SetImageProperty(preview_image,"label",label);
+    (void) SetImageProperty(preview_image,"label",label,exception);
     AppendImageToList(&images,preview_image);
     proceed=SetImageProgress(image,PreviewImageTag,(MagickOffsetType) i,
       NumberTiles);
diff --git a/MagickCore/fx.c b/MagickCore/fx.c
index f82d619..fada341 100644
--- a/MagickCore/fx.c
+++ b/MagickCore/fx.c
@@ -3919,7 +3919,7 @@
     image->rows)/25.0,10.0);
   height=image->rows+2*quantum;
   caption_image=(Image *) NULL;
-  value=GetImageProperty(image,"Caption");
+  value=GetImageProperty(image,"caption",exception);
   if (value != (const char *) NULL)
     {
       char
diff --git a/MagickCore/identify.c b/MagickCore/identify.c
index 1e5c6cd..d309087 100644
--- a/MagickCore/identify.c
+++ b/MagickCore/identify.c
@@ -807,7 +807,7 @@
         while (property != (const char *) NULL)
         {
           (void) FormatLocaleFile(file,"  %s:\n",property);
-          value=GetImageProperty(tile,property);
+          value=GetImageProperty(tile,property,exception);
           if (value != (const char *) NULL)
             (void) FormatLocaleFile(file,"%s\n",value);
           property=GetNextImageProperty(tile);
@@ -816,7 +816,7 @@
       }
       image_info=DestroyImageInfo(image_info);
     }
-  (void) GetImageProperty(image,"exif:*");
+  (void) GetImageProperty(image,"exif:*",exception);
   ResetImagePropertyIterator(image);
   property=GetNextImageProperty(image);
   if (property != (const char *) NULL)
@@ -828,14 +828,14 @@
       while (property != (const char *) NULL)
       {
         (void) FormatLocaleFile(file,"    %s: ",property);
-        value=GetImageProperty(image,property);
+        value=GetImageProperty(image,property,exception);
         if (value != (const char *) NULL)
           (void) FormatLocaleFile(file,"%s\n",value);
         property=GetNextImageProperty(image);
       }
     }
   (void) FormatLocaleString(key,MaxTextExtent,"8BIM:1999,2998:#1");
-  value=GetImageProperty(image,key);
+  value=GetImageProperty(image,key,exception);
   if (value != (const char *) NULL)
     {
       /*
diff --git a/MagickCore/image.c b/MagickCore/image.c
index 3d1e549..476668e 100644
--- a/MagickCore/image.c
+++ b/MagickCore/image.c
@@ -701,7 +701,7 @@
   property=AcquireString(pathname);
   (void) FormatLocaleString(property,MaxTextExtent,"8BIM:1999,2998:%s",
     pathname);
-  value=GetImageProperty(image,property);
+  value=GetImageProperty(image,property,exception);
   property=DestroyString(property);
   if (value == (const char *) NULL)
     {
@@ -1760,10 +1760,10 @@
         value=(const char *) NULL;
         if ((image_info != (const ImageInfo *) NULL) &&
             (image != (const Image *) NULL))
-          value=GetMagickProperty(image_info,image,pattern);
+          value=GetMagickProperty(image_info,image,pattern,&image->exception);
         else
           if (image != (Image *) NULL)
-            value=GetImageProperty(image,pattern);
+            value=GetImageProperty(image,pattern,&image->exception);
           else
             if (image_info != (ImageInfo *) NULL)
               value=GetImageOption(image_info,pattern);
diff --git a/MagickCore/magick-config.h b/MagickCore/magick-config.h
index 17c758d..f29604e 100644
--- a/MagickCore/magick-config.h
+++ b/MagickCore/magick-config.h
@@ -12,7 +12,9 @@
 /* #undef AUTOTRACE_DELEGATE */
 
 /* Define if coders and filters are to be built as modules. */
-/* #undef BUILD_MODULES */
+#ifndef MAGICKCORE_BUILD_MODULES
+#define MAGICKCORE_BUILD_MODULES 1
+#endif
 
 /* Define if you have the bzip2 library */
 #ifndef MAGICKCORE_BZLIB_DELEGATE
@@ -75,7 +77,9 @@
 #endif
 
 /* Define if you have FFTW library */
-/* #undef FFTW_DELEGATE */
+#ifndef MAGICKCORE_FFTW_DELEGATE
+#define MAGICKCORE_FFTW_DELEGATE 1
+#endif
 
 /* Location of filter modules */
 #ifndef MAGICKCORE_FILTER_PATH
@@ -217,7 +221,9 @@
 #endif
 
 /* Define to 1 if you have the <CL/cl.h> header file. */
-/* #undef HAVE_CL_CL_H */
+#ifndef MAGICKCORE_HAVE_CL_CL_H
+#define MAGICKCORE_HAVE_CL_CL_H 1
+#endif
 
 /* Define to 1 if you have the <complex.h> header file. */
 #ifndef MAGICKCORE_HAVE_COMPLEX_H
@@ -435,15 +441,15 @@
 #endif
 
 /* Define if you have the <lcms2.h> header file. */
-#ifndef MAGICKCORE_HAVE_LCMS2_H
-#define MAGICKCORE_HAVE_LCMS2_H 1
-#endif
+/* #undef HAVE_LCMS2_H */
 
 /* Define if you have the <lcms2/lcms2.h> header file. */
 /* #undef HAVE_LCMS2_LCMS2_H */
 
 /* Define if you have the <lcms.h> header file. */
-/* #undef HAVE_LCMS_H */
+#ifndef MAGICKCORE_HAVE_LCMS_H
+#define MAGICKCORE_HAVE_LCMS_H 1
+#endif
 
 /* Define if you have the <lcms/lcms.h> header file. */
 /* #undef HAVE_LCMS_LCMS_H */
@@ -1166,7 +1172,9 @@
 #endif
 
 /* Define if you have JBIG library */
-/* #undef JBIG_DELEGATE */
+#ifndef MAGICKCORE_JBIG_DELEGATE
+#define MAGICKCORE_JBIG_DELEGATE 1
+#endif
 
 /* Define if you have JPEG version 2 "Jasper" library */
 #ifndef MAGICKCORE_JP2_DELEGATE
@@ -1195,7 +1203,9 @@
 #endif
 
 /* Define if you have LQR library */
-/* #undef LQR_DELEGATE */
+#ifndef MAGICKCORE_LQR_DELEGATE
+#define MAGICKCORE_LQR_DELEGATE 1
+#endif
 
 /* Define if using libltdl to support dynamically loadable modules */
 #ifndef MAGICKCORE_LTDL_DELEGATE
@@ -1207,7 +1217,7 @@
 
 /* Define to the system default library search path. */
 #ifndef MAGICKCORE_LT_DLSEARCH_PATH
-#define MAGICKCORE_LT_DLSEARCH_PATH "/lib64:/usr/lib64:/lib:/usr/lib:/usr/lib64/atlas:/usr/lib/llvm:/usr/lib64/llvm:/usr/lib64/mysql:/usr/lib64/qt-3.3/lib:/usr/lib64/tcl8.5/tclx8.4:/usr/lib64/tcl8.5:/usr/lib/wine/:/usr/lib64/wine/:/usr/lib64/xulrunner-2"
+#define MAGICKCORE_LT_DLSEARCH_PATH "/lib64:/usr/lib64:/lib:/usr/lib:/usr/lib64/R/lib:/usr/lib64/atlas:/opt/modules/pkg/intel/f77/10.0.025/lib:/opt/intel/lib/intel64:/usr/lib64/llvm:/usr/local/lib:/usr/lib64/mysql:/usr/lib64/nvidia:/usr/lib64/qt-3.3/lib:/usr/lib64/xulrunner-2"
 #endif
 
 /* The archive extension */
@@ -1258,7 +1268,9 @@
 /* #undef NO_MINUS_C_MINUS_O */
 
 /* Define if you have OPENEXR library */
-/* #undef OPENEXR_DELEGATE */
+#ifndef MAGICKCORE_OPENEXR_DELEGATE
+#define MAGICKCORE_OPENEXR_DELEGATE 1
+#endif
 
 /* Name of package */
 #ifndef MAGICKCORE_PACKAGE
@@ -1318,7 +1330,9 @@
 #endif
 
 /* Define if you have RSVG library */
-/* #undef RSVG_DELEGATE */
+#ifndef MAGICKCORE_RSVG_DELEGATE
+#define MAGICKCORE_RSVG_DELEGATE 1
+#endif
 
 /* Define to the type of arg 1 for `select'. */
 #ifndef MAGICKCORE_SELECT_TYPE_ARG1
@@ -1465,7 +1479,9 @@
 #endif
 
 /* Define if you have WEBP library */
-/* #undef WEBP_DELEGATE */
+#ifndef MAGICKCORE_WEBP_DELEGATE
+#define MAGICKCORE_WEBP_DELEGATE 1
+#endif
 
 /* Define to use the Windows GDI32 library */
 /* #undef WINGDI32_DELEGATE */
@@ -1474,7 +1490,9 @@
 /* #undef WITH_DMALLOC */
 
 /* Define if you have WMF library */
-/* #undef WMF_DELEGATE */
+#ifndef MAGICKCORE_WMF_DELEGATE
+#define MAGICKCORE_WMF_DELEGATE 1
+#endif
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
@@ -1530,7 +1548,9 @@
 /* #undef _MINIX */
 
 /* Define this for the OpenCL Accelerator */
-/* #undef _OPENCL */
+#ifndef MAGICKCORE__OPENCL
+#define MAGICKCORE__OPENCL 1
+#endif
 
 /* Define to 2 if the system does not provide POSIX.1 features except with
    this defined. */
diff --git a/MagickCore/montage.c b/MagickCore/montage.c
index d08f550..044b5e2 100644
--- a/MagickCore/montage.c
+++ b/MagickCore/montage.c
@@ -568,7 +568,7 @@
   number_lines=0;
   for (i=0; i < (ssize_t) number_images; i++)
   {
-    value=GetImageProperty(image_list[i],"label");
+    value=GetImageProperty(image_list[i],"label",exception);
     if (value == (const char *) NULL)
       continue;
     if (MultilineCensus(value) > number_lines)
@@ -791,7 +791,7 @@
           extract_info=frame_info;
           extract_info.width=width+2*frame_info.width;
           extract_info.height=height+2*frame_info.height;
-          value=GetImageProperty(image,"label");
+          value=GetImageProperty(image,"label",exception);
           if (value != (const char *) NULL)
             extract_info.height+=(size_t) ((metrics.ascent-
               metrics.descent+4)*MultilineCensus(value));
@@ -829,7 +829,7 @@
           }
           (void) CompositeImage(montage,image->compose,image,x_offset+x,
             y_offset+y);
-          value=GetImageProperty(image,"label");
+          value=GetImageProperty(image,"label",exception);
           if (value != (const char *) NULL)
             {
               char
diff --git a/MagickCore/profile.c b/MagickCore/profile.c
index b33e29a..701284f 100644
--- a/MagickCore/profile.c
+++ b/MagickCore/profile.c
@@ -427,7 +427,8 @@
 }
 #endif
 
-static MagickBooleanType SetAdobeRGB1998ImageProfile(Image *image)
+static MagickBooleanType SetAdobeRGB1998ImageProfile(Image *image,
+  ExceptionInfo *exception)
 {
   static unsigned char
     AdobeRGB1998Profile[] =
@@ -497,12 +498,13 @@
     return(MagickFalse);
   profile=AcquireStringInfo(sizeof(AdobeRGB1998Profile));
   SetStringInfoDatum(profile,AdobeRGB1998Profile);
-  status=SetImageProfile(image,"icm",profile);
+  status=SetImageProfile(image,"icm",profile,exception);
   profile=DestroyStringInfo(profile);
   return(status);
 }
 
-static MagickBooleanType SetsRGBImageProfile(Image *image)
+static MagickBooleanType SetsRGBImageProfile(Image *image,
+  ExceptionInfo *exception)
 {
   static unsigned char
     sRGBProfile[] =
@@ -5601,7 +5603,7 @@
     return(MagickFalse);
   profile=AcquireStringInfo(sizeof(sRGBProfile));
   SetStringInfoDatum(profile,sRGBProfile);
-  status=SetImageProfile(image,"icm",profile);
+  status=SetImageProfile(image,"icm",profile,exception);
   profile=DestroyStringInfo(profile);
   return(status);
 }
@@ -5704,7 +5706,7 @@
   profile=AcquireStringInfo((size_t) length);
   SetStringInfoDatum(profile,(unsigned char *) datum);
   if ((LocaleCompare(name,"icc") != 0) && (LocaleCompare(name,"icm") != 0))
-    status=SetImageProfile(image,name,profile);
+    status=SetImageProfile(image,name,profile,exception);
   else
     {
       const StringInfo
@@ -5717,15 +5719,15 @@
           const char
             *value;
 
-          value=GetImageProperty(image,"exif:ColorSpace");
+          value=GetImageProperty(image,"exif:ColorSpace",exception);
           if (LocaleCompare(value,"1") != 0)
-            (void) SetsRGBImageProfile(image);
-          value=GetImageProperty(image,"exif:InteroperabilityIndex");
+            (void) SetsRGBImageProfile(image,exception);
+          value=GetImageProperty(image,"exif:InteroperabilityIndex",exception);
           if (LocaleCompare(value,"R98.") != 0)
-            (void) SetsRGBImageProfile(image);
-          value=GetImageProperty(image,"exif:InteroperabilityIndex");
+            (void) SetsRGBImageProfile(image,exception);
+          value=GetImageProperty(image,"exif:InteroperabilityIndex",exception);
           if (LocaleCompare(value,"R03.") != 0)
-            (void) SetAdobeRGB1998ImageProfile(image);
+            (void) SetAdobeRGB1998ImageProfile(image,exception);
           icc_profile=GetImageProfile(image,"icc");
         }
       if ((icc_profile != (const StringInfo *) NULL) &&
@@ -5755,7 +5757,7 @@
             "ColorspaceColorProfileMismatch",name);
         if ((cmsGetDeviceClass(source_profile) != cmsSigLinkClass) &&
             (icc_profile == (StringInfo *) NULL))
-          status=SetImageProfile(image,name,profile);
+          status=SetImageProfile(image,name,profile,exception);
         else
           {
             CacheView
@@ -6117,7 +6119,7 @@
             source_pixels=DestroyPixelThreadSet(source_pixels);
             transform=DestroyTransformThreadSet(transform);
             if (cmsGetDeviceClass(source_profile) != cmsSigLinkClass)
-              status=SetImageProfile(image,name,profile);
+              status=SetImageProfile(image,name,profile,exception);
             if (target_profile != (cmsHPROFILE) NULL)
               (void) cmsCloseProfile(target_profile);
           }
@@ -6278,7 +6280,7 @@
 }
 
 static MagickBooleanType GetProfilesFromResourceBlock(Image *image,
-  const StringInfo *resource_block)
+  const StringInfo *resource_block,ExceptionInfo *exception)
 {
   const unsigned char
     *datum;
@@ -6341,7 +6343,7 @@
         */
         profile=AcquireStringInfo(count);
         SetStringInfoDatum(profile,p);
-        (void) SetImageProfile(image,"iptc",profile);
+        (void) SetImageProfile(image,"iptc",profile,exception);
         profile=DestroyStringInfo(profile);
         p+=count;
         break;
@@ -6361,7 +6363,7 @@
         */
         profile=AcquireStringInfo(count);
         SetStringInfoDatum(profile,p);
-        (void) SetImageProfile(image,"icc",profile);
+        (void) SetImageProfile(image,"icc",profile,exception);
         profile=DestroyStringInfo(profile);
         p+=count;
         break;
@@ -6373,7 +6375,7 @@
         */
         profile=AcquireStringInfo(count);
         SetStringInfoDatum(profile,p);
-        (void) SetImageProfile(image,"exif",profile);
+        (void) SetImageProfile(image,"exif",profile,exception);
         profile=DestroyStringInfo(profile);
         p+=count;
         break;
@@ -6385,7 +6387,7 @@
         */
         profile=AcquireStringInfo(count);
         SetStringInfoDatum(profile,p);
-        (void) SetImageProfile(image,"xmp",profile);
+        (void) SetImageProfile(image,"xmp",profile,exception);
         profile=DestroyStringInfo(profile);
         p+=count;
         break;
@@ -6403,7 +6405,7 @@
 }
 
 MagickExport MagickBooleanType SetImageProfile(Image *image,const char *name,
-  const StringInfo *profile)
+  const StringInfo *profile,ExceptionInfo *exception)
 {
   char
     key[MaxTextExtent],
@@ -6424,12 +6426,12 @@
     ConstantString(key),CloneStringInfo(profile));
   if ((status != MagickFalse) &&
       ((LocaleCompare(name,"iptc") == 0) || (LocaleCompare(name,"8bim") == 0)))
-    (void) GetProfilesFromResourceBlock(image,profile);
+    (void) GetProfilesFromResourceBlock(image,profile,exception);
   /*
     Inject profile into image properties.
   */
   (void) FormatLocaleString(property,MaxTextExtent,"%s:sans",name);
-  (void) GetImageProperty(image,property);
+  (void) GetImageProperty(image,property,exception);
   return(status);
 }
 
diff --git a/MagickCore/profile.h b/MagickCore/profile.h
index 585843b..32d3e69 100644
--- a/MagickCore/profile.h
+++ b/MagickCore/profile.h
@@ -46,7 +46,7 @@
   CloneImageProfiles(Image *,const Image *),
   DeleteImageProfile(Image *,const char *),
   ProfileImage(Image *,const char *,const void *,const size_t,ExceptionInfo *),
-  SetImageProfile(Image *,const char *,const StringInfo *);
+  SetImageProfile(Image *,const char *,const StringInfo *,ExceptionInfo *);
 
 extern MagickExport StringInfo
   *RemoveImageProfile(Image *,const char *);
diff --git a/MagickCore/property.c b/MagickCore/property.c
index 37ba978..c16c499 100644
--- a/MagickCore/property.c
+++ b/MagickCore/property.c
@@ -192,7 +192,7 @@
 %  The format of the DefineImageProperty method is:
 %
 %      MagickBooleanType DefineImageProperty(Image *image,
-%        const char *property)
+%        const char *property,ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -200,9 +200,11 @@
 %
 %    o property: the image property.
 %
+%    o exception: return any errors or warnings in this structure.
+%
 */
 MagickExport MagickBooleanType DefineImageProperty(Image *image,
-  const char *property)
+  const char *property,ExceptionInfo *exception)
 {
   char
     key[MaxTextExtent],
@@ -221,7 +223,7 @@
   if (*p == '=')
     (void) CopyMagickString(value,p+1,MaxTextExtent);
   *p='\0';
-  return(SetImageProperty(image,key,value));
+  return(SetImageProperty(image,key,value,exception));
 }
 
 /*
@@ -341,7 +343,7 @@
   n=FormatLocaleStringList(value,MaxTextExtent,format,operands);
   (void) n;
   va_end(operands);
-  return(SetImageProperty(image,property,value));
+  return(SetImageProperty(image,property,value,&image->exception));
 }
 
 /*
@@ -359,7 +361,8 @@
 %
 %  The format of the GetImageProperty method is:
 %
-%      const char *GetImageProperty(const Image *image,const char *key)
+%      const char *GetImageProperty(const Image *image,const char *key,
+%        ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -367,6 +370,8 @@
 %
 %    o key: the key.
 %
+%    o exception: return any errors or warnings in this structure.
+%
 */
 
 static char
@@ -375,7 +380,8 @@
   *TraceSVGClippath(const unsigned char *,size_t,const size_t,
     const size_t);
 
-static MagickBooleanType GetIPTCProperty(const Image *image,const char *key)
+static MagickBooleanType GetIPTCProperty(const Image *image,const char *key,
+  ExceptionInfo *exception)
 {
   char
     *attribute,
@@ -435,7 +441,8 @@
       return(MagickFalse);
     }
   attribute[strlen(attribute)-1]='\0';
-  (void) SetImageProperty((Image *) image,key,(const char *) attribute);
+  (void) SetImageProperty((Image *) image,key,(const char *) attribute,
+    exception);
   attribute=DestroyString(attribute);
   return(MagickTrue);
 }
@@ -517,7 +524,8 @@
   return((unsigned short) (value & 0xffff));
 }
 
-static MagickBooleanType Get8BIMProperty(const Image *image,const char *key)
+static MagickBooleanType Get8BIMProperty(const Image *image,const char *key,
+  ExceptionInfo *exception)
 {
   char
     *attribute,
@@ -640,7 +648,7 @@
         length-=count;
         if ((id <= 1999) || (id >= 2999))
           (void) SetImageProperty((Image *) image,key,(const char *)
-            attribute);
+            attribute,exception);
         else
           {
             char
@@ -652,7 +660,8 @@
             else
               path=TracePSClippath((unsigned char *) attribute,(size_t) count,
                 image->columns,image->rows);
-            (void) SetImageProperty((Image *) image,key,(const char *) path);
+            (void) SetImageProperty((Image *) image,key,(const char *) path,
+              exception);
             path=DestroyString(path);
           }
         attribute=DestroyString(attribute);
@@ -698,7 +707,7 @@
 }
 
 static MagickBooleanType GetEXIFProperty(const Image *image,
-  const char *property)
+  const char *property,ExceptionInfo *exception)
 {
 #define MaxDirectoryStack  16
 #define EXIF_DELIMITER  "\n"
@@ -1429,7 +1438,7 @@
                 p=(const char *) GetValueFromSplayTree((SplayTreeInfo *)
                   image->properties,key);
               if (p == (const char *) NULL)
-                (void) SetImageProperty((Image *) image,key,value);
+                (void) SetImageProperty((Image *) image,key,value,exception);
               value=DestroyString(value);
               status=MagickTrue;
             }
@@ -1936,11 +1945,8 @@
 }
 
 MagickExport const char *GetImageProperty(const Image *image,
-  const char *property)
+  const char *property,ExceptionInfo *exception)
 {
-  ExceptionInfo
-    *exception;
-
   FxInfo
     *fx_info;
 
@@ -1978,14 +1984,13 @@
   if ((property == (const char *) NULL) ||
       (strchr(property,':') == (char *) NULL))
     return(p);
-  exception=(&((Image *) image)->exception);
   switch (*property)
   {
     case '8':
     {
       if (LocaleNCompare("8bim:",property,5) == 0)
         {
-          if ((Get8BIMProperty(image,property) != MagickFalse) &&
+          if ((Get8BIMProperty(image,property,exception) != MagickFalse) &&
               (image->properties != (void *) NULL))
             {
               p=(const char *) GetValueFromSplayTree((SplayTreeInfo *)
@@ -2000,7 +2005,7 @@
     {
       if (LocaleNCompare("exif:",property,5) == 0)
         {
-          if ((GetEXIFProperty(image,property) != MagickFalse) &&
+          if ((GetEXIFProperty(image,property,exception) != MagickFalse) &&
               (image->properties != (void *) NULL))
             {
               p=(const char *) GetValueFromSplayTree((SplayTreeInfo *)
@@ -2026,7 +2031,7 @@
 
               (void) FormatLocaleString(value,MaxTextExtent,"%.*g",
                 GetMagickPrecision(),(double) alpha);
-              (void) SetImageProperty((Image *) image,property,value);
+              (void) SetImageProperty((Image *) image,property,value,exception);
             }
           if (image->properties != (void *) NULL)
             {
@@ -2042,7 +2047,7 @@
     {
       if (LocaleNCompare("iptc:",property,5) == 0)
         {
-          if ((GetIPTCProperty(image,property) != MagickFalse) &&
+          if ((GetIPTCProperty(image,property,exception) != MagickFalse) &&
               (image->properties != (void *) NULL))
             {
               p=(const char *) GetValueFromSplayTree((SplayTreeInfo *)
@@ -2088,8 +2093,8 @@
 
               (void) QueryColorname(image,&pixel,SVGCompliance,name,
                 exception);
-              (void) SetImageProperty((Image *) image,property,name);
-              return(GetImageProperty(image,property));
+              (void) SetImageProperty((Image *) image,property,name,exception);
+              return(GetImageProperty(image,property,exception));
             }
         }
       break;
@@ -2131,7 +2136,7 @@
 %  The format of the GetMagickProperty method is:
 %
 %      const char *GetMagickProperty(const ImageInfo *image_info,Image *image,
-%        const char *key)
+%        const char *key,ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -2141,9 +2146,11 @@
 %
 %    o key: the key.
 %
+%    o exception: return any errors or warnings in this structure.
+%
 */
 MagickExport const char *GetMagickProperty(const ImageInfo *image_info,
-  Image *image,const char *property)
+  Image *image,const char *property,ExceptionInfo *exception)
 {
   char
     value[MaxTextExtent],
@@ -2471,7 +2478,7 @@
      (void) AddValueToSplayTree((SplayTreeInfo *) image->properties,
        ConstantString(property),ConstantString(value));
    }
-  return(GetImageProperty(image,property));
+  return(GetImageProperty(image,property,exception));
 }
 
 /*
@@ -2650,7 +2657,7 @@
           pattern[i]=(*p++);
         }
         pattern[i]='\0';
-        value=GetImageProperty(image,pattern);
+        value=GetImageProperty(image,pattern,exception);
         if (value != (const char *) NULL)
           {
             length=strlen(value);
@@ -2679,7 +2686,7 @@
               {
                 if (GlobExpression(key,pattern,MagickTrue) != MagickFalse)
                   {
-                    value=GetImageProperty(image,key);
+                    value=GetImageProperty(image,key,exception);
                     if (value != (const char *) NULL)
                       {
                         length=strlen(key)+strlen(value)+2;
@@ -2699,7 +2706,7 @@
                 key=GetNextImageProperty(image);
               }
             }
-        value=GetMagickProperty(image_info,image,pattern);
+        value=GetMagickProperty(image_info,image,pattern,exception);
         if (value != (const char *) NULL)
           {
             length=strlen(value);
@@ -2752,7 +2759,7 @@
       }
       case 'c':  /* image comment properity */
       {
-        value=GetImageProperty(image,"comment");
+        value=GetImageProperty(image,"comment",exception);
         if (value == (const char *) NULL)
           break;
         length=strlen(value);
@@ -2819,7 +2826,7 @@
       }
       case 'l': /* Image label  */
       {
-        value=GetImageProperty(image,"label");
+        value=GetImageProperty(image,"label",exception);
         if (value == (const char *) NULL)
           break;
         length=strlen(value);
@@ -3016,7 +3023,7 @@
       case '#': /* Image signature */
       {
         (void) SignatureImage(image,exception);
-        value=GetImageProperty(image,"signature");
+        value=GetImageProperty(image,"signature",exception);
         if (value == (const char *) NULL)
           break;
         q+=CopyMagickString(q,value,extent);
@@ -3138,7 +3145,7 @@
 %  The format of the SetImageProperty method is:
 %
 %      MagickBooleanType SetImageProperty(Image *image,const char *property,
-%        const char *value)
+%        const char *value,ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -3148,13 +3155,12 @@
 %
 %    o values: the image property values.
 %
+%    o exception: return any errors or warnings in this structure.
+%
 */
 MagickExport MagickBooleanType SetImageProperty(Image *image,
-  const char *property,const char *value)
+  const char *property,const char *value,ExceptionInfo *exception)
 {
-  ExceptionInfo
-    *exception;
-
   MagickBooleanType
     status;
 
@@ -3172,7 +3178,6 @@
   if ((value == (const char *) NULL) || (*value == '\0'))
     return(DeleteImageProperty(image,property));
   status=MagickTrue;
-  exception=(&image->exception);
   switch (*property)
   {
     case 'B':
@@ -3381,7 +3386,7 @@
           (void) SetImageInfo(image_info,1,exception);
           profile=FileToStringInfo(image_info->filename,~0UL,exception);
           if (profile != (StringInfo *) NULL)
-            status=SetImageProfile(image,image_info->magick,profile);
+            status=SetImageProfile(image,image_info->magick,profile,exception);
           image_info=DestroyImageInfo(image_info);
           break;
         }
diff --git a/MagickCore/property.h b/MagickCore/property.h
index 4b8af40..a725ecf 100644
--- a/MagickCore/property.h
+++ b/MagickCore/property.h
@@ -29,16 +29,16 @@
   *RemoveImageProperty(Image *,const char *);
 
 extern MagickExport const char
-  *GetImageProperty(const Image *,const char *),
-  *GetMagickProperty(const ImageInfo *,Image *,const char *);
+  *GetImageProperty(const Image *,const char *,ExceptionInfo *),
+  *GetMagickProperty(const ImageInfo *,Image *,const char *,ExceptionInfo *);
 
 extern MagickExport MagickBooleanType
   CloneImageProperties(Image *,const Image *),
-  DefineImageProperty(Image *,const char *),
+  DefineImageProperty(Image *,const char *,ExceptionInfo *),
   DeleteImageProperty(Image *,const char *),
   FormatImageProperty(Image *,const char *,const char *,...)
     magick_attribute((format (printf,3,4))),
-  SetImageProperty(Image *,const char *,const char *);
+  SetImageProperty(Image *,const char *,const char *,ExceptionInfo *);
 
 extern MagickExport void
   DestroyImageProperties(Image *),
diff --git a/MagickCore/resize.c b/MagickCore/resize.c
index e6c32cb..7919da6 100644
--- a/MagickCore/resize.c
+++ b/MagickCore/resize.c
@@ -3261,32 +3261,35 @@
   if (strstr(image->magick_filename,"//") == (char *) NULL)
     (void) FormatLocaleString(value,MaxTextExtent,"file://%s",
       image->magick_filename);
-  (void) SetImageProperty(thumbnail_image,"Thumb::URI",value);
+  (void) SetImageProperty(thumbnail_image,"Thumb::URI",value,exception);
   (void) CopyMagickString(value,image->magick_filename,MaxTextExtent);
   if (GetPathAttributes(image->filename,&attributes) != MagickFalse)
     {
       (void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double)
         attributes.st_mtime);
-      (void) SetImageProperty(thumbnail_image,"Thumb::MTime",value);
+      (void) SetImageProperty(thumbnail_image,"Thumb::MTime",value,exception);
     }
   (void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double)
     attributes.st_mtime);
   (void) FormatMagickSize(GetBlobSize(image),MagickFalse,value);
   (void) ConcatenateMagickString(value,"B",MaxTextExtent);
-  (void) SetImageProperty(thumbnail_image,"Thumb::Size",value);
+  (void) SetImageProperty(thumbnail_image,"Thumb::Size",value,exception);
   (void) FormatLocaleString(value,MaxTextExtent,"image/%s",image->magick);
   LocaleLower(value);
-  (void) SetImageProperty(thumbnail_image,"Thumb::Mimetype",value);
-  (void) SetImageProperty(thumbnail_image,"software",
-    GetMagickVersion(&version));
+  (void) SetImageProperty(thumbnail_image,"Thumb::Mimetype",value,exception);
+  (void) SetImageProperty(thumbnail_image,"software",GetMagickVersion(&version),
+    exception);
   (void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double)
     image->magick_columns);
-  (void) SetImageProperty(thumbnail_image,"Thumb::Image::Width",value);
+  (void) SetImageProperty(thumbnail_image,"Thumb::Image::Width",value,
+    exception);
   (void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double)
     image->magick_rows);
-  (void) SetImageProperty(thumbnail_image,"Thumb::Image::height",value);
+  (void) SetImageProperty(thumbnail_image,"Thumb::Image::height",value,
+    exception);
   (void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double)
     GetImageListLength(image));
-  (void) SetImageProperty(thumbnail_image,"Thumb::Document::Pages",value);
+  (void) SetImageProperty(thumbnail_image,"Thumb::Document::Pages",value,
+    exception);
   return(thumbnail_image);
 }
diff --git a/MagickCore/signature.c b/MagickCore/signature.c
index 6cc2bad..24cd720 100644
--- a/MagickCore/signature.c
+++ b/MagickCore/signature.c
@@ -550,7 +550,7 @@
   FinalizeSignature(signature_info);
   hex_signature=StringInfoToHexString(GetSignatureDigest(signature_info));
   (void) DeleteImageProperty(image,"signature");
-  (void) SetImageProperty(image,"signature",hex_signature);
+  (void) SetImageProperty(image,"signature",hex_signature,exception);
   /*
     Free resources.
   */
diff --git a/MagickCore/version.h b/MagickCore/version.h
index 57a75f4..64c3c64 100644
--- a/MagickCore/version.h
+++ b/MagickCore/version.h
@@ -27,7 +27,7 @@
 */
 #define MagickPackageName "ImageMagick"
 #define MagickCopyright  "Copyright (C) 1999-2011 ImageMagick Studio LLC"
-#define MagickSVNRevision  "5645"
+#define MagickSVNRevision  "exported"
 #define MagickLibVersion  0x700
 #define MagickLibVersionText  "7.0.0"
 #define MagickLibVersionNumber  7,0,0