diff --git a/Magick++/lib/Magick++/STL.h b/Magick++/lib/Magick++/STL.h
index cfb3b98..facacac 100644
--- a/Magick++/lib/Magick++/STL.h
+++ b/Magick++/lib/Magick++/STL.h
@@ -952,14 +952,16 @@
   class MagickDLLDecl shadeImage : public std::unary_function<Image&,void>
   {
   public:
-    shadeImage( const double clusterThreshold_ = 1.0, 
-    const double smoothingThreshold_ = 1.5 );
+    shadeImage( const double azimuth_ = 30,
+    const double elevation_ = 30,
+    const bool   colorShading_ = false );
 
     void operator()( Image &image_ ) const;
 
   private:
-    double  _clusterThreshold;
-    double  _smoothingThreshold;
+    double  _azimuth;
+    double  _elevation;
+    bool    _colorShading;
   };
 
   // Sharpen pixels in image
diff --git a/Magick++/lib/STL.cpp b/Magick++/lib/STL.cpp
index 78c73c5..cbc96f2 100644
--- a/Magick++/lib/STL.cpp
+++ b/Magick++/lib/STL.cpp
@@ -875,10 +875,12 @@
 }
 
 // Shade image using distant light source
-Magick::shadeImage::shadeImage( const double clusterThreshold_, 
-                                const double smoothingThreshold_ )
-  : _clusterThreshold( clusterThreshold_ ),
-    _smoothingThreshold( smoothingThreshold_ )
+Magick::shadeImage::shadeImage( const double azimuth_,
+                                const double elevation_,
+        const bool colorShading_)
+  : _azimuth( azimuth_ ),
+    _elevation( elevation_ ),
+    _colorShading (colorShading_)
 {
 }
 void Magick::shadeImage::operator()( Magick::Image &image_ ) const