diff --git a/coders/cin.c b/coders/cin.c
index 2d426fa..f7d802f 100644
--- a/coders/cin.c
+++ b/coders/cin.c
@@ -1057,12 +1057,12 @@
   cin.origination.x_pitch=0.0f;
   value=GetCINProperty(image_info,image,"dpx:origination.x_pitch");
   if (value != (const char *) NULL)
-    cin.origination.x_pitch=LocaleToDouble(value,(char **) NULL);
+    cin.origination.x_pitch=InterpretLocaleValue(value,(char **) NULL);
   offset+=WriteBlobFloat(image,cin.origination.x_pitch);
   cin.origination.y_pitch=0.0f;
   value=GetCINProperty(image_info,image,"dpx:origination.y_pitch");
   if (value != (const char *) NULL)
-    cin.origination.y_pitch=LocaleToDouble(value,(char **) NULL);
+    cin.origination.y_pitch=InterpretLocaleValue(value,(char **) NULL);
   offset+=WriteBlobFloat(image,cin.origination.y_pitch);
   cin.origination.gamma=image->gamma;
   offset+=WriteBlobFloat(image,cin.origination.gamma);
@@ -1110,7 +1110,7 @@
   cin.film.frame_rate=0.0f;
   value=GetCINProperty(image_info,image,"dpx:film.frame_rate");
   if (value != (const char *) NULL)
-    cin.film.frame_rate=LocaleToDouble(value,(char **) NULL);
+    cin.film.frame_rate=InterpretLocaleValue(value,(char **) NULL);
   offset+=WriteBlobFloat(image,cin.film.frame_rate);
   value=GetCINProperty(image_info,image,"dpx:film.frame_id");
   if (value != (const char *) NULL)
diff --git a/coders/dpx.c b/coders/dpx.c
index 38ec0af..2bf2dca 100644
--- a/coders/dpx.c
+++ b/coders/dpx.c
@@ -1532,12 +1532,12 @@
   dpx.orientation.x_center=0.0f;
   value=GetDPXProperty(image_info,image,"dpx:orientation.x_center");
   if (value != (const char *) NULL)
-    dpx.orientation.x_center=LocaleToDouble(value,(char **) NULL);
+    dpx.orientation.x_center=InterpretLocaleValue(value,(char **) NULL);
   offset+=WriteBlobFloat(image,dpx.orientation.x_center);
   dpx.orientation.y_center=0.0f;
   value=GetDPXProperty(image_info,image,"dpx:orientation.y_center");
   if (value != (const char *) NULL)
-    dpx.orientation.y_center=LocaleToDouble(value,(char **) NULL);
+    dpx.orientation.y_center=InterpretLocaleValue(value,(char **) NULL);
   offset+=WriteBlobFloat(image,dpx.orientation.y_center);
   dpx.orientation.x_size=0U;
   value=GetDPXProperty(image_info,image,"dpx:orientation.x_size");
@@ -1653,12 +1653,12 @@
   dpx.film.frame_rate=0.0f;
   value=GetDPXProperty(image_info,image,"dpx:film.frame_rate");
   if (value != (const char *) NULL)
-    dpx.film.frame_rate=LocaleToDouble(value,(char **) NULL);
+    dpx.film.frame_rate=InterpretLocaleValue(value,(char **) NULL);
   offset+=WriteBlobFloat(image,dpx.film.frame_rate);
   dpx.film.shutter_angle=0.0f;
   value=GetDPXProperty(image_info,image,"dpx:film.shutter_angle");
   if (value != (const char *) NULL)
-    dpx.film.shutter_angle=LocaleToDouble(value,(char **) NULL);
+    dpx.film.shutter_angle=InterpretLocaleValue(value,(char **) NULL);
   offset+=WriteBlobFloat(image,dpx.film.shutter_angle);
   *dpx.film.frame_id='\0';
   value=GetDPXProperty(image_info,image,"dpx:film.frame_id");
@@ -1706,52 +1706,54 @@
   value=GetDPXProperty(image_info,image,
     "dpx:television.horizontal_sample_rate");
   if (value != (const char *) NULL)
-    dpx.television.horizontal_sample_rate=LocaleToDouble(value,(char **) NULL);
+    dpx.television.horizontal_sample_rate=InterpretLocaleValue(value,
+      (char **) NULL);
   offset+=WriteBlobFloat(image,dpx.television.horizontal_sample_rate);
   dpx.television.vertical_sample_rate=0.0f;
   value=GetDPXProperty(image_info,image,"dpx:television.vertical_sample_rate");
   if (value != (const char *) NULL)
-    dpx.television.vertical_sample_rate=LocaleToDouble(value,(char **) NULL);
+    dpx.television.vertical_sample_rate=InterpretLocaleValue(value,
+      (char **) NULL);
   offset+=WriteBlobFloat(image,dpx.television.vertical_sample_rate);
   dpx.television.frame_rate=0.0f;
   value=GetDPXProperty(image_info,image,"dpx:television.frame_rate");
   if (value != (const char *) NULL)
-    dpx.television.frame_rate=LocaleToDouble(value,(char **) NULL);
+    dpx.television.frame_rate=InterpretLocaleValue(value,(char **) NULL);
   offset+=WriteBlobFloat(image,dpx.television.frame_rate);
   dpx.television.time_offset=0.0f;
   value=GetDPXProperty(image_info,image,"dpx:television.time_offset");
   if (value != (const char *) NULL)
-    dpx.television.time_offset=LocaleToDouble(value,(char **) NULL);
+    dpx.television.time_offset=InterpretLocaleValue(value,(char **) NULL);
   offset+=WriteBlobFloat(image,dpx.television.time_offset);
   dpx.television.gamma=0.0f;
   value=GetDPXProperty(image_info,image,"dpx:television.gamma");
   if (value != (const char *) NULL)
-    dpx.television.gamma=LocaleToDouble(value,(char **) NULL);
+    dpx.television.gamma=InterpretLocaleValue(value,(char **) NULL);
   offset+=WriteBlobFloat(image,dpx.television.gamma);
   dpx.television.black_level=0.0f;
   value=GetDPXProperty(image_info,image,"dpx:television.black_level");
   if (value != (const char *) NULL)
-    dpx.television.black_level=LocaleToDouble(value,(char **) NULL);
+    dpx.television.black_level=InterpretLocaleValue(value,(char **) NULL);
   offset+=WriteBlobFloat(image,dpx.television.black_level);
   dpx.television.black_gain=0.0f;
   value=GetDPXProperty(image_info,image,"dpx:television.black_gain");
   if (value != (const char *) NULL)
-    dpx.television.black_gain=LocaleToDouble(value,(char **) NULL);
+    dpx.television.black_gain=InterpretLocaleValue(value,(char **) NULL);
   offset+=WriteBlobFloat(image,dpx.television.black_gain);
   dpx.television.break_point=0.0f;
   value=GetDPXProperty(image_info,image,"dpx:television.break_point");
   if (value != (const char *) NULL)
-    dpx.television.break_point=LocaleToDouble(value,(char **) NULL);
+    dpx.television.break_point=InterpretLocaleValue(value,(char **) NULL);
   offset+=WriteBlobFloat(image,dpx.television.break_point);
   dpx.television.white_level=0.0f;
   value=GetDPXProperty(image_info,image,"dpx:television.white_level");
   if (value != (const char *) NULL)
-    dpx.television.white_level=LocaleToDouble(value,(char **) NULL);
+    dpx.television.white_level=InterpretLocaleValue(value,(char **) NULL);
   offset+=WriteBlobFloat(image,dpx.television.white_level);
   dpx.television.integration_times=0.0f;
   value=GetDPXProperty(image_info,image,"dpx:television.integration_times");
   if (value != (const char *) NULL)
-    dpx.television.integration_times=LocaleToDouble(value,(char **) NULL);
+    dpx.television.integration_times=InterpretLocaleValue(value,(char **) NULL);
   offset+=WriteBlobFloat(image,dpx.television.integration_times);
   offset+=WriteBlob(image,sizeof(dpx.television.reserve),(unsigned char *)
     dpx.television.reserve);
diff --git a/coders/fits.c b/coders/fits.c
index 4ea3a15..310365e 100644
--- a/coders/fits.c
+++ b/coders/fits.c
@@ -358,13 +358,13 @@
       if (LocaleCompare(keyword,"naxis3") == 0)
         fits_info.number_planes=StringToLong(p);
       if (LocaleCompare(keyword,"datamax") == 0)
-        fits_info.max_data=LocaleToDouble(p,(char **) NULL);
+        fits_info.max_data=InterpretLocaleValue(p,(char **) NULL);
       if (LocaleCompare(keyword,"datamin") == 0)
-        fits_info.min_data=LocaleToDouble(p,(char **) NULL);
+        fits_info.min_data=InterpretLocaleValue(p,(char **) NULL);
       if (LocaleCompare(keyword,"bzero") == 0)
-        fits_info.zero=LocaleToDouble(p,(char **) NULL);
+        fits_info.zero=InterpretLocaleValue(p,(char **) NULL);
       if (LocaleCompare(keyword,"bscale") == 0)
-        fits_info.scale=LocaleToDouble(p,(char **) NULL);
+        fits_info.scale=InterpretLocaleValue(p,(char **) NULL);
       if (LocaleCompare(keyword,"comment") == 0)
         {
           if (comment == (char *) NULL)
diff --git a/coders/hdr.c b/coders/hdr.c
index 15ee82b..aeb5df0 100644
--- a/coders/hdr.c
+++ b/coders/hdr.c
@@ -301,7 +301,7 @@
             {
               if (LocaleCompare(keyword,"gamma") == 0)
                 {
-                  image->gamma=LocaleToDouble(value,(char **) NULL);
+                  image->gamma=InterpretLocaleValue(value,(char **) NULL);
                   break;
                 }
               (void) FormatLocaleString(tag,MaxTextExtent,"hdr:%s",keyword);
diff --git a/coders/jbig.c b/coders/jbig.c
index db4339a..96185f5 100644
--- a/coders/jbig.c
+++ b/coders/jbig.c
@@ -443,7 +443,7 @@
   status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);
   if (status == MagickFalse)
     return(status);
-  version=LocaleToDouble(JBG_VERSION,(char **) NULL);
+  version=InterpretLocaleValue(JBG_VERSION,(char **) NULL);
   scene=0;
   do
   {
diff --git a/coders/miff.c b/coders/miff.c
index 15bcb02..2a068f1 100644
--- a/coders/miff.c
+++ b/coders/miff.c
@@ -747,7 +747,7 @@
               {
                 if (LocaleCompare(keyword,"gamma") == 0)
                   {
-                    image->gamma=LocaleToDouble(options,(char **) NULL);
+                    image->gamma=InterpretLocaleValue(options,(char **) NULL);
                     break;
                   }
                 if (LocaleCompare(keyword,"gravity") == 0)
@@ -1014,7 +1014,7 @@
               {
                 if (LocaleCompare(keyword,"version") == 0)
                   {
-                    version=LocaleToDouble(options,(char **) NULL);
+                    version=InterpretLocaleValue(options,(char **) NULL);
                     break;
                   }
                 (void) SetImageProperty(image,keyword,options);
diff --git a/coders/mpc.c b/coders/mpc.c
index 1235d3b..bfe2a04 100644
--- a/coders/mpc.c
+++ b/coders/mpc.c
@@ -444,7 +444,8 @@
                   }
                 if (LocaleCompare(keyword,"error") == 0)
                   {
-                    image->error.mean_error_per_pixel=LocaleToDouble(options,(char **) NULL);
+                    image->error.mean_error_per_pixel=InterpretLocaleValue(
+                      options,(char **) NULL);
                     break;
                   }
                 (void) SetImageProperty(image,keyword,options);
@@ -455,7 +456,7 @@
               {
                 if (LocaleCompare(keyword,"gamma") == 0)
                   {
-                    image->gamma=LocaleToDouble(options,(char **) NULL);
+                    image->gamma=InterpretLocaleValue(options,(char **) NULL);
                     break;
                   }
                 if (LocaleCompare(keyword,"green-primary") == 0)
@@ -511,12 +512,13 @@
                 if (LocaleCompare(keyword,"maximum-error") == 0)
                   {
                     image->error.normalized_maximum_error=
-                      LocaleToDouble(options,(char **) NULL);
+                      InterpretLocaleValue(options,(char **) NULL);
                     break;
                   }
                 if (LocaleCompare(keyword,"mean-error") == 0)
                   {
-                    image->error.normalized_mean_error=LocaleToDouble(options,(char **) NULL);
+                    image->error.normalized_mean_error=InterpretLocaleValue(
+                      options,(char **) NULL);
                     break;
                   }
                 if (LocaleCompare(keyword,"montage") == 0)
diff --git a/coders/msl.c b/coders/msl.c
index c9806e6..74bab38 100644
--- a/coders/msl.c
+++ b/coders/msl.c
@@ -780,22 +780,22 @@
                         *p;
 
                       p=value;
-                      draw_info->affine.sx=LocaleToDouble(p,&p);
+                      draw_info->affine.sx=InterpretLocaleValue(p,&p);
                       if (*p ==',')
                         p++;
-                      draw_info->affine.rx=LocaleToDouble(p,&p);
+                      draw_info->affine.rx=InterpretLocaleValue(p,&p);
                       if (*p ==',')
                         p++;
-                      draw_info->affine.ry=LocaleToDouble(p,&p);
+                      draw_info->affine.ry=InterpretLocaleValue(p,&p);
                       if (*p ==',')
                         p++;
-                      draw_info->affine.sy=LocaleToDouble(p,&p);
+                      draw_info->affine.sy=InterpretLocaleValue(p,&p);
                       if (*p ==',')
                         p++;
-                      draw_info->affine.tx=LocaleToDouble(p,&p);
+                      draw_info->affine.tx=InterpretLocaleValue(p,&p);
                       if (*p ==',')
                         p++;
-                      draw_info->affine.ty=LocaleToDouble(p,&p);
+                      draw_info->affine.ty=InterpretLocaleValue(p,&p);
                       break;
                     }
                   if (LocaleCompare(keyword,"align") == 0)
@@ -900,7 +900,8 @@
                 {
                   if (LocaleCompare(keyword,"pointsize") == 0)
                     {
-                      draw_info->pointsize=LocaleToDouble(value,(char **) NULL);
+                      draw_info->pointsize=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -912,7 +913,7 @@
                 {
                   if (LocaleCompare(keyword,"rotate") == 0)
                     {
-                      angle=LocaleToDouble(value,(char **) NULL);
+                      angle=InterpretLocaleValue(value,(char **) NULL);
                       affine.sx=cos(DegreesToRadians(fmod(angle,360.0)));
                       affine.rx=sin(DegreesToRadians(fmod(angle,360.0)));
                       affine.ry=(-sin(DegreesToRadians(fmod(angle,360.0))));
@@ -937,14 +938,14 @@
                     }
                   if (LocaleCompare(keyword,"skewX") == 0)
                     {
-                      angle=LocaleToDouble(value,(char **) NULL);
+                      angle=InterpretLocaleValue(value,(char **) NULL);
                       affine.ry=tan(DegreesToRadians(fmod((double) angle,
                         360.0)));
                       break;
                     }
                   if (LocaleCompare(keyword,"skewY") == 0)
                     {
-                      angle=LocaleToDouble(value,(char **) NULL);
+                      angle=InterpretLocaleValue(value,(char **) NULL);
                       affine.rx=tan(DegreesToRadians(fmod((double) angle,
                         360.0)));
                       break;
@@ -1199,7 +1200,8 @@
                 {
                   if (LocaleCompare(keyword,"radius") == 0)
                     {
-                      geometry_info.rho=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.rho=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -1449,7 +1451,7 @@
             {
               if (LocaleCompare(keyword, "radius") == 0)
               {
-                radius = LocaleToDouble(value,(char **) NULL);
+                radius = InterpretLocaleValue(value,(char **) NULL);
                 break;
               }
               ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -1648,7 +1650,8 @@
                     }
                   if (LocaleCompare(keyword,"fuzz") == 0)
                     {
-                      msl_info->image[n]->fuzz=LocaleToDouble(value,(char **) NULL);
+                      msl_info->image[n]->fuzz=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -1954,8 +1957,8 @@
                 {
                   if (LocaleCompare(keyword,"rotate") == 0)
                     {
-                      rotate_image=RotateImage(composite_image,LocaleToDouble(value,(char **) NULL),
-                        &exception);
+                      rotate_image=RotateImage(composite_image,
+                        InterpretLocaleValue(value,(char **) NULL),&exception);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -2368,22 +2371,22 @@
                         *p;
 
                       p=value;
-                      draw_info->affine.sx=LocaleToDouble(p,&p);
+                      draw_info->affine.sx=InterpretLocaleValue(p,&p);
                       if (*p ==',')
                         p++;
-                      draw_info->affine.rx=LocaleToDouble(p,&p);
+                      draw_info->affine.rx=InterpretLocaleValue(p,&p);
                       if (*p ==',')
                         p++;
-                      draw_info->affine.ry=LocaleToDouble(p,&p);
+                      draw_info->affine.ry=InterpretLocaleValue(p,&p);
                       if (*p ==',')
                         p++;
-                      draw_info->affine.sy=LocaleToDouble(p,&p);
+                      draw_info->affine.sy=InterpretLocaleValue(p,&p);
                       if (*p ==',')
                         p++;
-                      draw_info->affine.tx=LocaleToDouble(p,&p);
+                      draw_info->affine.tx=InterpretLocaleValue(p,&p);
                       if (*p ==',')
                         p++;
-                      draw_info->affine.ty=LocaleToDouble(p,&p);
+                      draw_info->affine.ty=InterpretLocaleValue(p,&p);
                       break;
                     }
                   if (LocaleCompare(keyword,"align") == 0)
@@ -2493,7 +2496,8 @@
                     }
                   if (LocaleCompare(keyword,"pointsize") == 0)
                     {
-                      draw_info->pointsize=LocaleToDouble(value,(char **) NULL);
+                      draw_info->pointsize=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -2505,7 +2509,7 @@
                 {
                   if (LocaleCompare(keyword,"rotate") == 0)
                     {
-                      angle=LocaleToDouble(value,(char **) NULL);
+                      angle=InterpretLocaleValue(value,(char **) NULL);
                       affine.sx=cos(DegreesToRadians(fmod(angle,360.0)));
                       affine.rx=sin(DegreesToRadians(fmod(angle,360.0)));
                       affine.ry=(-sin(DegreesToRadians(fmod(angle,360.0))));
@@ -2530,13 +2534,13 @@
                     }
                   if (LocaleCompare(keyword,"skewX") == 0)
                     {
-                      angle=LocaleToDouble(value,(char **) NULL);
+                      angle=InterpretLocaleValue(value,(char **) NULL);
                       affine.ry=cos(DegreesToRadians(fmod(angle,360.0)));
                       break;
                     }
                   if (LocaleCompare(keyword,"skewY") == 0)
                     {
-                      angle=LocaleToDouble(value,(char **) NULL);
+                      angle=InterpretLocaleValue(value,(char **) NULL);
                       affine.rx=cos(DegreesToRadians(fmod(angle,360.0)));
                       break;
                     }
@@ -2716,7 +2720,8 @@
                 {
                   if (LocaleCompare(keyword,"radius") == 0)
                     {
-                      geometry_info.rho=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.rho=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -2781,7 +2786,8 @@
                 {
                   if (LocaleCompare(keyword,"radius") == 0)
                     {
-                      geometry_info.rho=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.rho=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -3155,7 +3161,7 @@
                 {
                   if (LocaleCompare(keyword,"blue") == 0)
                     {
-                      pixel.blue=LocaleToDouble(value,(char **) NULL);
+                      pixel.blue=InterpretLocaleValue(value,(char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -3188,7 +3194,7 @@
                     }
                   if (LocaleCompare(keyword,"green") == 0)
                     {
-                      pixel.green=LocaleToDouble(value,(char **) NULL);
+                      pixel.green=InterpretLocaleValue(value,(char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -3200,7 +3206,7 @@
                 {
                   if (LocaleCompare(keyword,"red") == 0)
                     {
-                      pixel.red=LocaleToDouble(value,(char **) NULL);
+                      pixel.red=InterpretLocaleValue(value,(char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -3394,7 +3400,8 @@
                 {
                   if (LocaleCompare(keyword,"amount") == 0)
                     {
-                      geometry_info.rho=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.rho=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -3463,7 +3470,7 @@
             {
               if (LocaleCompare(keyword,"black") == 0)
               {
-                levelBlack = LocaleToDouble(value,(char **) NULL);
+                levelBlack = InterpretLocaleValue(value,(char **) NULL);
                 break;
               }
               ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -3474,7 +3481,7 @@
             {
               if (LocaleCompare(keyword,"gamma") == 0)
               {
-                levelGamma = LocaleToDouble(value,(char **) NULL);
+                levelGamma = InterpretLocaleValue(value,(char **) NULL);
                 break;
               }
               ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -3485,7 +3492,7 @@
             {
               if (LocaleCompare(keyword,"white") == 0)
               {
-                levelWhite = LocaleToDouble(value,(char **) NULL);
+                levelWhite = InterpretLocaleValue(value,(char **) NULL);
                 break;
               }
               ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -3677,7 +3684,8 @@
                 {
                   if (LocaleCompare(keyword,"fuzz") == 0)
                     {
-                      msl_info->image[n]->fuzz=LocaleToDouble(value,(char **) NULL);
+                      msl_info->image[n]->fuzz=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -3706,7 +3714,7 @@
                 {
                   if (LocaleCompare(keyword,"opacity") == 0)
                     {
-                      opacity=LocaleToDouble(value,(char **) NULL);
+                      opacity=InterpretLocaleValue(value,(char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -3800,7 +3808,8 @@
                 {
                   if (LocaleCompare(keyword,"radius") == 0)
                     {
-                      geometry_info.rho=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.rho=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -3888,12 +3897,14 @@
                 {
                   if (LocaleCompare(keyword,"blackness") == 0)
                     {
-                      geometry_info.rho=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.rho=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   if (LocaleCompare(keyword,"brightness") == 0)
                     {
-                      geometry_info.rho=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.rho=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -3917,7 +3928,8 @@
                 {
                   if (LocaleCompare(keyword,"hue") == 0)
                     {
-                      geometry_info.xi=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.xi=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -3929,7 +3941,8 @@
                 {
                   if (LocaleCompare(keyword,"lightness") == 0)
                     {
-                      geometry_info.rho=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.rho=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -3941,7 +3954,8 @@
                 {
                   if (LocaleCompare(keyword,"saturation") == 0)
                     {
-                      geometry_info.sigma=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.sigma=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -3953,7 +3967,8 @@
                 {
                   if (LocaleCompare(keyword,"whiteness") == 0)
                     {
-                      geometry_info.sigma=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.sigma=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -4140,7 +4155,8 @@
                 {
                   if (LocaleCompare(keyword,"radius") == 0)
                     {
-                      geometry_info.rho=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.rho=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -4215,7 +4231,8 @@
                     }
                   if (LocaleCompare(keyword,"fuzz") == 0)
                     {
-                      msl_info->image[n]->fuzz=LocaleToDouble(value,(char **) NULL);
+                      msl_info->image[n]->fuzz=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -4517,22 +4534,22 @@
                         *p;
 
                       p=value;
-                      draw_info->affine.sx=LocaleToDouble(p,&p);
+                      draw_info->affine.sx=InterpretLocaleValue(p,&p);
                       if (*p ==',')
                         p++;
-                      draw_info->affine.rx=LocaleToDouble(p,&p);
+                      draw_info->affine.rx=InterpretLocaleValue(p,&p);
                       if (*p ==',')
                         p++;
-                      draw_info->affine.ry=LocaleToDouble(p,&p);
+                      draw_info->affine.ry=InterpretLocaleValue(p,&p);
                       if (*p ==',')
                         p++;
-                      draw_info->affine.sy=LocaleToDouble(p,&p);
+                      draw_info->affine.sy=InterpretLocaleValue(p,&p);
                       if (*p ==',')
                         p++;
-                      draw_info->affine.tx=LocaleToDouble(p,&p);
+                      draw_info->affine.tx=InterpretLocaleValue(p,&p);
                       if (*p ==',')
                         p++;
-                      draw_info->affine.ty=LocaleToDouble(p,&p);
+                      draw_info->affine.ty=InterpretLocaleValue(p,&p);
                       break;
                     }
                   if (LocaleCompare(keyword,"align") == 0)
@@ -4637,7 +4654,8 @@
                 {
                   if (LocaleCompare(keyword,"pointsize") == 0)
                     {
-                      draw_info->pointsize=LocaleToDouble(value,(char **) NULL);
+                      draw_info->pointsize=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -4649,7 +4667,7 @@
                 {
                   if (LocaleCompare(keyword,"rotate") == 0)
                     {
-                      angle=LocaleToDouble(value,(char **) NULL);
+                      angle=InterpretLocaleValue(value,(char **) NULL);
                       affine.sx=cos(DegreesToRadians(fmod(angle,360.0)));
                       affine.rx=sin(DegreesToRadians(fmod(angle,360.0)));
                       affine.ry=(-sin(DegreesToRadians(fmod(angle,360.0))));
@@ -4674,13 +4692,13 @@
                     }
                   if (LocaleCompare(keyword,"skewX") == 0)
                     {
-                      angle=LocaleToDouble(value,(char **) NULL);
+                      angle=InterpretLocaleValue(value,(char **) NULL);
                       affine.ry=cos(DegreesToRadians(fmod(angle,360.0)));
                       break;
                     }
                   if (LocaleCompare(keyword,"skewY") == 0)
                     {
-                      angle=LocaleToDouble(value,(char **) NULL);
+                      angle=InterpretLocaleValue(value,(char **) NULL);
                       affine.rx=cos(DegreesToRadians(fmod(angle,360.0)));
                       break;
                     }
@@ -5025,7 +5043,8 @@
                 {
                   if (LocaleCompare(keyword,"radius") == 0)
                     {
-                      geometry_info.rho=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.rho=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -5203,7 +5222,8 @@
           {
             if (LocaleCompare(keyword,"blur") == 0)
               {
-                msl_info->image[n]->blur=LocaleToDouble(value,(char **) NULL);
+                msl_info->image[n]->blur=InterpretLocaleValue(value,
+                        (char **) NULL);
                 break;
               }
             ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -5232,7 +5252,7 @@
           {
             if (LocaleCompare(keyword,"x-resolution") == 0)
               {
-                x_resolution=LocaleToDouble(value,(char **) NULL);
+                x_resolution=InterpretLocaleValue(value,(char **) NULL);
                 break;
               }
             ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -5243,7 +5263,7 @@
           {
             if (LocaleCompare(keyword,"y-resolution") == 0)
               {
-                y_resolution=LocaleToDouble(value,(char **) NULL);
+                y_resolution=InterpretLocaleValue(value,(char **) NULL);
                 break;
               }
             ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -5363,7 +5383,7 @@
                 {
                   if (LocaleCompare(keyword,"support") == 0)
                     {
-                      blur=LocaleToDouble(value,(char **) NULL);
+                      blur=InterpretLocaleValue(value,(char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -5584,7 +5604,8 @@
                 {
                   if (LocaleCompare(keyword,"degrees") == 0)
                     {
-                      geometry_info.rho=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.rho=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -5646,7 +5667,7 @@
           {
           if (LocaleCompare(keyword,"degrees") == 0)
             {
-            degrees = LocaleToDouble(value,(char **) NULL);
+            degrees = InterpretLocaleValue(value,(char **) NULL);
             break;
             }
           ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -5868,7 +5889,8 @@
                 {
                   if (LocaleCompare(keyword,"cluster-threshold") == 0)
                     {
-                      geometry_info.rho=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.rho=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   if (LocaleCompare(keyword,"colorspace") == 0)
@@ -5904,7 +5926,8 @@
                 {
                   if (LocaleCompare(keyword,"smoothing-threshold") == 0)
                     {
-                      geometry_info.sigma=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.sigma=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -6107,7 +6130,8 @@
                 {
                   if (LocaleCompare(keyword,"azimuth") == 0)
                     {
-                      geometry_info.rho=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.rho=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -6119,7 +6143,8 @@
                 {
                   if (LocaleCompare(keyword,"elevation") == 0)
                     {
-                      geometry_info.sigma=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.sigma=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -6230,7 +6255,8 @@
                 {
                   if (LocaleCompare(keyword,"x") == 0)
                     {
-                      geometry_info.xi=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.xi=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -6294,7 +6320,7 @@
             {
               if (LocaleCompare(keyword, "radius") == 0)
               {
-                radius = LocaleToDouble(value,(char **) NULL);
+                radius = InterpretLocaleValue(value,(char **) NULL);
                 break;
               }
               ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -6477,7 +6503,8 @@
                 {
                   if (LocaleCompare(keyword,"x") == 0)
                     {
-                      geometry_info.rho=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.rho=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -6581,7 +6608,8 @@
                 {
                   if (LocaleCompare(keyword,"threshold") == 0)
                     {
-                      geometry_info.rho=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.rho=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -6641,7 +6669,8 @@
                 {
                   if (LocaleCompare(keyword,"radius") == 0)
                     {
-                      geometry_info.rho=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.rho=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -6888,7 +6917,8 @@
                 {
                   if (LocaleCompare(keyword,"degrees") == 0)
                     {
-                      geometry_info.rho=LocaleToDouble(value,(char **) NULL);
+                      geometry_info.rho=InterpretLocaleValue(value,
+                        (char **) NULL);
                       break;
                     }
                   ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -7041,7 +7071,7 @@
           {
           if (LocaleCompare(keyword,"threshold") == 0)
             {
-            threshold = LocaleToDouble(value,(char **) NULL);
+            threshold = InterpretLocaleValue(value,(char **) NULL);
             break;
             }
           ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -7990,8 +8020,8 @@
     {
       if (LocaleCompare(keyword,"pointsize") == 0)
         {
-          image_info->pointsize=LocaleToDouble(value,(char **) NULL);
-          draw_info->pointsize=LocaleToDouble(value,(char **) NULL);
+          image_info->pointsize=InterpretLocaleValue(value,(char **) NULL);
+          draw_info->pointsize=InterpretLocaleValue(value,(char **) NULL);
           break;
         }
       ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
diff --git a/coders/pnm.c b/coders/pnm.c
index 1dc040d..3182e56 100644
--- a/coders/pnm.c
+++ b/coders/pnm.c
@@ -304,7 +304,7 @@
               scale[MaxTextExtent];
 
             (void) ReadBlobString(image,scale);
-            quantum_scale=LocaleToDouble(scale,(char **) NULL);
+            quantum_scale=InterpretLocaleValue(scale,(char **) NULL);
           }
         else
           {
diff --git a/coders/sct.c b/coders/sct.c
index 0addb62..dc75600 100644
--- a/coders/sct.c
+++ b/coders/sct.c
@@ -204,9 +204,9 @@
   separations_mask=ReadBlobMSBShort(image);
   count=ReadBlob(image,14,buffer);
   buffer[14]='\0';
-  height=LocaleToDouble((char *) buffer,(char **) NULL);
+  height=InterpretLocaleValue((char *) buffer,(char **) NULL);
   count=ReadBlob(image,14,buffer);
-  width=LocaleToDouble((char *) buffer,(char **) NULL);
+  width=InterpretLocaleValue((char *) buffer,(char **) NULL);
   count=ReadBlob(image,12,buffer);
   buffer[12]='\0';
   image->rows=StringToUnsignedLong((char *) buffer);
diff --git a/coders/svg.c b/coders/svg.c
index d0a81b9..51d1c78 100644
--- a/coders/svg.c
+++ b/coders/svg.c
@@ -297,7 +297,7 @@
   assert(string != (const char *) NULL);
   p=(const char *) string;
   GetMagickToken(p,&p,token);
-  value=LocaleToDouble(token,(char **) NULL);
+  value=InterpretLocaleValue(token,(char **) NULL);
   if (strchr(token,'%') != (char *) NULL)
     {
       double
@@ -1301,27 +1301,27 @@
                       {
                         p=(const char *) value;
                         GetMagickToken(p,&p,token);
-                        affine.sx=LocaleToDouble(value,(char **) NULL);
+                        affine.sx=InterpretLocaleValue(value,(char **) NULL);
                         GetMagickToken(p,&p,token);
                         if (*token == ',')
                           GetMagickToken(p,&p,token);
-                        affine.rx=LocaleToDouble(token,(char **) NULL);
+                        affine.rx=InterpretLocaleValue(token,(char **) NULL);
                         GetMagickToken(p,&p,token);
                         if (*token == ',')
                           GetMagickToken(p,&p,token);
-                        affine.ry=LocaleToDouble(token,(char **) NULL);
+                        affine.ry=InterpretLocaleValue(token,(char **) NULL);
                         GetMagickToken(p,&p,token);
                         if (*token == ',')
                           GetMagickToken(p,&p,token);
-                        affine.sy=LocaleToDouble(token,(char **) NULL);
+                        affine.sy=InterpretLocaleValue(token,(char **) NULL);
                         GetMagickToken(p,&p,token);
                         if (*token == ',')
                           GetMagickToken(p,&p,token);
-                        affine.tx=LocaleToDouble(token,(char **) NULL);
+                        affine.tx=InterpretLocaleValue(token,(char **) NULL);
                         GetMagickToken(p,&p,token);
                         if (*token == ',')
                           GetMagickToken(p,&p,token);
-                        affine.ty=LocaleToDouble(token,(char **) NULL);
+                        affine.ty=InterpretLocaleValue(token,(char **) NULL);
                         break;
                       }
                     break;
@@ -1918,27 +1918,27 @@
                       {
                         p=(const char *) value;
                         GetMagickToken(p,&p,token);
-                        affine.sx=LocaleToDouble(value,(char **) NULL);
+                        affine.sx=InterpretLocaleValue(value,(char **) NULL);
                         GetMagickToken(p,&p,token);
                         if (*token == ',')
                           GetMagickToken(p,&p,token);
-                        affine.rx=LocaleToDouble(token,(char **) NULL);
+                        affine.rx=InterpretLocaleValue(token,(char **) NULL);
                         GetMagickToken(p,&p,token);
                         if (*token == ',')
                           GetMagickToken(p,&p,token);
-                        affine.ry=LocaleToDouble(token,(char **) NULL);
+                        affine.ry=InterpretLocaleValue(token,(char **) NULL);
                         GetMagickToken(p,&p,token);
                         if (*token == ',')
                           GetMagickToken(p,&p,token);
-                        affine.sy=LocaleToDouble(token,(char **) NULL);
+                        affine.sy=InterpretLocaleValue(token,(char **) NULL);
                         GetMagickToken(p,&p,token);
                         if (*token == ',')
                           GetMagickToken(p,&p,token);
-                        affine.tx=LocaleToDouble(token,(char **) NULL);
+                        affine.tx=InterpretLocaleValue(token,(char **) NULL);
                         GetMagickToken(p,&p,token);
                         if (*token == ',')
                           GetMagickToken(p,&p,token);
-                        affine.ty=LocaleToDouble(token,(char **) NULL);
+                        affine.ty=InterpretLocaleValue(token,(char **) NULL);
                         break;
                       }
                     break;
@@ -1955,15 +1955,15 @@
 
                         p=(const char *) value;
                         GetMagickToken(p,&p,token);
-                        angle=LocaleToDouble(value,(char **) NULL);
+                        angle=InterpretLocaleValue(value,(char **) NULL);
                         GetMagickToken(p,&p,token);
                         if (*token == ',')
                           GetMagickToken(p,&p,token);
-                        x=LocaleToDouble(token,(char **) NULL);
+                        x=InterpretLocaleValue(token,(char **) NULL);
                         GetMagickToken(p,&p,token);
                         if (*token == ',')
                           GetMagickToken(p,&p,token);
-                        y=LocaleToDouble(token,(char **) NULL);
+                        y=InterpretLocaleValue(token,(char **) NULL);
                         affine.sx=cos(DegreesToRadians(fmod(angle,360.0)));
                         affine.rx=sin(DegreesToRadians(fmod(angle,360.0)));
                         affine.ry=(-sin(DegreesToRadians(fmod(angle,360.0))));
@@ -2066,21 +2066,23 @@
             {
               p=(const char *) value;
               GetMagickToken(p,&p,token);
-              svg_info->view_box.x=LocaleToDouble(token,(char **) NULL);
+              svg_info->view_box.x=InterpretLocaleValue(token,(char **) NULL);
               GetMagickToken(p,&p,token);
               if (*token == ',')
                 GetMagickToken(p,&p,token);
-              svg_info->view_box.y=LocaleToDouble(token,(char **) NULL);
+              svg_info->view_box.y=InterpretLocaleValue(token,(char **) NULL);
               GetMagickToken(p,&p,token);
               if (*token == ',')
                 GetMagickToken(p,&p,token);
-              svg_info->view_box.width=LocaleToDouble(token,(char **) NULL);
+              svg_info->view_box.width=InterpretLocaleValue(token,
+                (char **) NULL);
               if (svg_info->bounds.width == 0)
                 svg_info->bounds.width=svg_info->view_box.width;
               GetMagickToken(p,&p,token);
               if (*token == ',')
                 GetMagickToken(p,&p,token);
-              svg_info->view_box.height=LocaleToDouble(token,(char **) NULL);
+              svg_info->view_box.height=InterpretLocaleValue(token,
+                (char **) NULL);
               if (svg_info->bounds.height == 0)
                 svg_info->bounds.height=svg_info->view_box.height;
               break;
@@ -3555,34 +3557,34 @@
         if (LocaleCompare("affine",keyword) == 0)
           {
             GetMagickToken(q,&q,token);
-            affine.sx=LocaleToDouble(token,(char **) NULL);
+            affine.sx=InterpretLocaleValue(token,(char **) NULL);
             GetMagickToken(q,&q,token);
             if (*token == ',')
               GetMagickToken(q,&q,token);
-            affine.rx=LocaleToDouble(token,(char **) NULL);
+            affine.rx=InterpretLocaleValue(token,(char **) NULL);
             GetMagickToken(q,&q,token);
             if (*token == ',')
               GetMagickToken(q,&q,token);
-            affine.ry=LocaleToDouble(token,(char **) NULL);
+            affine.ry=InterpretLocaleValue(token,(char **) NULL);
             GetMagickToken(q,&q,token);
             if (*token == ',')
               GetMagickToken(q,&q,token);
-            affine.sy=LocaleToDouble(token,(char **) NULL);
+            affine.sy=InterpretLocaleValue(token,(char **) NULL);
             GetMagickToken(q,&q,token);
             if (*token == ',')
               GetMagickToken(q,&q,token);
-            affine.tx=LocaleToDouble(token,(char **) NULL);
+            affine.tx=InterpretLocaleValue(token,(char **) NULL);
             GetMagickToken(q,&q,token);
             if (*token == ',')
               GetMagickToken(q,&q,token);
-            affine.ty=LocaleToDouble(token,(char **) NULL);
+            affine.ty=InterpretLocaleValue(token,(char **) NULL);
             break;
           }
         if (LocaleCompare("angle",keyword) == 0)
           {
             GetMagickToken(q,&q,token);
-            affine.rx=LocaleToDouble(token,(char **) NULL);
-            affine.ry=LocaleToDouble(token,(char **) NULL);
+            affine.rx=InterpretLocaleValue(token,(char **) NULL);
+            affine.ry=InterpretLocaleValue(token,(char **) NULL);
             break;
           }
         if (LocaleCompare("arc",keyword) == 0)
@@ -3897,23 +3899,25 @@
                 GetMagickToken(q,&q,token);
                 (void) CopyMagickString(type,token,MaxTextExtent);
                 GetMagickToken(q,&q,token);
-                svg_info.segment.x1=LocaleToDouble(token,(char **) NULL);
-                svg_info.element.cx=LocaleToDouble(token,(char **) NULL);
+                svg_info.segment.x1=InterpretLocaleValue(token,(char **) NULL);
+                svg_info.element.cx=InterpretLocaleValue(token,(char **) NULL);
                 GetMagickToken(q,&q,token);
                 if (*token == ',')
                   GetMagickToken(q,&q,token);
-                svg_info.segment.y1=LocaleToDouble(token,(char **) NULL);
-                svg_info.element.cy=LocaleToDouble(token,(char **) NULL);
+                svg_info.segment.y1=InterpretLocaleValue(token,(char **) NULL);
+                svg_info.element.cy=InterpretLocaleValue(token,(char **) NULL);
                 GetMagickToken(q,&q,token);
                 if (*token == ',')
                   GetMagickToken(q,&q,token);
-                svg_info.segment.x2=LocaleToDouble(token,(char **) NULL);
-                svg_info.element.major=LocaleToDouble(token,(char **) NULL);
+                svg_info.segment.x2=InterpretLocaleValue(token,(char **) NULL);
+                svg_info.element.major=InterpretLocaleValue(token,
+                  (char **) NULL);
                 GetMagickToken(q,&q,token);
                 if (*token == ',')
                   GetMagickToken(q,&q,token);
-                svg_info.segment.y2=LocaleToDouble(token,(char **) NULL);
-                svg_info.element.minor=LocaleToDouble(token,(char **) NULL);
+                svg_info.segment.y2=InterpretLocaleValue(token,(char **) NULL);
+                svg_info.element.minor=InterpretLocaleValue(token,
+                  (char **) NULL);
                 (void) FormatLocaleString(message,MaxTextExtent,
                   "<%sGradient id=\"%s\" x1=\"%g\" y1=\"%g\" x2=\"%g\" "
                   "y2=\"%g\">\n",type,name,svg_info.segment.x1,
@@ -3923,7 +3927,8 @@
                     GetMagickToken(q,&q,token);
                     if (*token == ',')
                       GetMagickToken(q,&q,token);
-                    svg_info.element.angle=LocaleToDouble(token,(char **) NULL);
+                    svg_info.element.angle=InterpretLocaleValue(token,
+                      (char **) NULL);
                     (void) FormatLocaleString(message,MaxTextExtent,
                       "<%sGradient id=\"%s\" cx=\"%g\" cy=\"%g\" r=\"%g\" "
                       "fx=\"%g\" fy=\"%g\">\n",type,name,
@@ -3950,19 +3955,21 @@
                 GetMagickToken(q,&q,token);
                 (void) CopyMagickString(name,token,MaxTextExtent);
                 GetMagickToken(q,&q,token);
-                svg_info.bounds.x=LocaleToDouble(token,(char **) NULL);
+                svg_info.bounds.x=InterpretLocaleValue(token,(char **) NULL);
                 GetMagickToken(q,&q,token);
                 if (*token == ',')
                   GetMagickToken(q,&q,token);
-                svg_info.bounds.y=LocaleToDouble(token,(char **) NULL);
+                svg_info.bounds.y=InterpretLocaleValue(token,(char **) NULL);
                 GetMagickToken(q,&q,token);
                 if (*token == ',')
                   GetMagickToken(q,&q,token);
-                svg_info.bounds.width=LocaleToDouble(token,(char **) NULL);
+                svg_info.bounds.width=InterpretLocaleValue(token,
+                  (char **) NULL);
                 GetMagickToken(q,&q,token);
                 if (*token == ',')
                   GetMagickToken(q,&q,token);
-                svg_info.bounds.height=LocaleToDouble(token,(char **) NULL);
+                svg_info.bounds.height=InterpretLocaleValue(token,
+                  (char **) NULL);
                 (void) FormatLocaleString(message,MaxTextExtent,
                   "<pattern id=\"%s\" x=\"%g\" y=\"%g\" width=\"%g\" "
                   "height=\"%g\">\n",name,svg_info.bounds.x,
@@ -4006,11 +4013,11 @@
         if (LocaleCompare("scale",keyword) == 0)
           {
             GetMagickToken(q,&q,token);
-            affine.sx=LocaleToDouble(token,(char **) NULL);
+            affine.sx=InterpretLocaleValue(token,(char **) NULL);
             GetMagickToken(q,&q,token);
             if (*token == ',')
               GetMagickToken(q,&q,token);
-            affine.sy=LocaleToDouble(token,(char **) NULL);
+            affine.sy=InterpretLocaleValue(token,(char **) NULL);
             break;
           }
         if (LocaleCompare("skewX",keyword) == 0)
@@ -4161,11 +4168,11 @@
         if (LocaleCompare("translate",keyword) == 0)
           {
             GetMagickToken(q,&q,token);
-            affine.tx=LocaleToDouble(token,(char **) NULL);
+            affine.tx=InterpretLocaleValue(token,(char **) NULL);
             GetMagickToken(q,&q,token);
             if (*token == ',')
               GetMagickToken(q,&q,token);
-            affine.ty=LocaleToDouble(token,(char **) NULL);
+            affine.ty=InterpretLocaleValue(token,(char **) NULL);
             break;
           }
         status=MagickFalse;
@@ -4214,11 +4221,11 @@
       if (IsPoint(q) == MagickFalse)
         break;
       GetMagickToken(q,&q,token);
-      point.x=LocaleToDouble(token,(char **) NULL);
+      point.x=InterpretLocaleValue(token,(char **) NULL);
       GetMagickToken(q,&q,token);
       if (*token == ',')
         GetMagickToken(q,&q,token);
-      point.y=LocaleToDouble(token,(char **) NULL);
+      point.y=InterpretLocaleValue(token,(char **) NULL);
       GetMagickToken(q,(const char **) NULL,token);
       if (*token == ',')
         GetMagickToken(q,&q,token);
diff --git a/coders/tiff.c b/coders/tiff.c
index 2cf1835..02916f8 100644
--- a/coders/tiff.c
+++ b/coders/tiff.c
@@ -2390,7 +2390,7 @@
         float
           rational;
 
-        rational=LocaleToDouble(value,(char **) NULL);
+        rational=InterpretLocaleValue(value,(char **) NULL);
         (void) TIFFSetField(tiff,exif_info[i].tag,rational);
         break;
       }