diff --git a/ChangeLog b/ChangeLog
index 100d0a2..df877c8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,7 +10,7 @@
 2009-09-22  6.5.6-4 Cristy  <quetzlzacatenango@image...>
   * Don't compile Huffman2DEncodeImage() unless the TIFF delegate library
     is enabled.
-  * Hue in hsl() format is 0-359 and does not use %.
+  * Hue in hsl() format is 0-360 and does not use %.
 
 2009-09-21  6.5.6-3 Cristy  <quetzlzacatenango@image...>
   * Deprecate LevelImageColors(), replace with LevelColorsImage().
diff --git a/magick/color.c b/magick/color.c
index 1b86e6f..65e3ee5 100644
--- a/magick/color.c
+++ b/magick/color.c
@@ -681,16 +681,6 @@
       (void) ConcatenateMagickString(tuple,component,MaxTextExtent);
       return;
     }
-  if ((channel == RedChannel) &&
-      ((pixel->colorspace == HSBColorspace) ||
-       (pixel->colorspace == HSLColorspace) ||
-       (pixel->colorspace == HWBColorspace)))
-    {
-      (void) FormatMagickString(component,MaxTextExtent,"%g",
-        360.0*(QuantumScale*color));
-      (void) ConcatenateMagickString(tuple,component,MaxTextExtent);
-      return;
-    }
   if (pixel->depth > 8)
     {
       (void) FormatMagickString(component,MaxTextExtent,"%g%%",
@@ -3311,58 +3301,35 @@
             color->opacity=(MagickRealType) RoundToQuantum((MagickRealType)
               (QuantumRange-QuantumRange*geometry_info.sigma));
         }
-      if (LocaleCompare(colorspace,"HSB") == 0)
+      if ((LocaleCompare(colorspace,"HSB") == 0) ||
+          (LocaleCompare(colorspace,"HSL") == 0) ||
+          (LocaleCompare(colorspace,"HWB") == 0))
         {
           PixelPacket
             pixel;
 
-          geometry_info.rho=fmod(fmod(geometry_info.rho,360.0)+360.0,360.0)/
-            360.0;
+          scale=1.0/360.0;
+          if ((flags & PercentValue) != 0)
+            scale=1.0/100.0;
+          geometry_info.rho*=360.0*scale;
           scale=1.0/255.0;
           if ((flags & PercentValue) != 0)
             scale=1.0/100.0;
           geometry_info.sigma*=scale;
           geometry_info.xi*=scale;
-          ConvertHSBToRGB(geometry_info.rho,geometry_info.sigma,
-            geometry_info.xi,&pixel.red,&pixel.green,&pixel.blue);
-          color->colorspace=RGBColorspace;
-          color->red=(MagickRealType) pixel.red;
-          color->green=(MagickRealType) pixel.green;
-          color->blue=(MagickRealType) pixel.blue;
-        }
-      if (LocaleCompare(colorspace,"HSL") == 0)
-        {
-          PixelPacket
-            pixel;
-
-          geometry_info.rho=fmod(fmod(geometry_info.rho,360.0)+360.0,360.0)/
-            360.0;
-          scale=1.0/255.0;
-          if ((flags & PercentValue) != 0)
-            scale=1.0/100.0;
-          geometry_info.sigma*=scale;
-          geometry_info.xi*=scale;
-          ConvertHSLToRGB(geometry_info.rho,geometry_info.sigma,
-            geometry_info.xi,&pixel.red,&pixel.green,&pixel.blue);
-          color->colorspace=RGBColorspace;
-          color->red=(MagickRealType) pixel.red;
-          color->green=(MagickRealType) pixel.green;
-          color->blue=(MagickRealType) pixel.blue;
-        }
-      if (LocaleCompare(colorspace,"HWB") == 0)
-        {
-          PixelPacket
-            pixel;
-
-          geometry_info.rho=fmod(fmod(geometry_info.rho,360.0)+360.0,360.0)/
-            360.0;
-          scale=1.0/255.0;
-          if ((flags & PercentValue) != 0)
-            scale=1.0/100.0;
-          geometry_info.sigma*=scale;
-          geometry_info.xi*=scale;
-          ConvertHWBToRGB(geometry_info.rho,geometry_info.sigma,
-            geometry_info.xi,&pixel.red,&pixel.green,&pixel.blue);
+          if (LocaleCompare(colorspace,"HSB") == 0)
+            ConvertHSBToRGB(fmod(fmod(geometry_info.rho,360.0)+360.0,360.0)/
+              360.0,geometry_info.sigma,geometry_info.xi,&pixel.red,
+              &pixel.green,&pixel.blue);
+          else
+            if (LocaleCompare(colorspace,"HSL") == 0)
+              ConvertHSLToRGB(fmod(fmod(geometry_info.rho,360.0)+360.0,360.0)/
+                360.0,geometry_info.sigma,geometry_info.xi,&pixel.red,
+                &pixel.green,&pixel.blue);
+            else
+              ConvertHWBToRGB(fmod(fmod(geometry_info.rho,360.0)+360.0,360.0)/
+                360.0,geometry_info.sigma,geometry_info.xi,&pixel.red,
+                &pixel.green,&pixel.blue);
           color->colorspace=RGBColorspace;
           color->red=(MagickRealType) pixel.red;
           color->green=(MagickRealType) pixel.green;