diff --git a/www/api/morphology.html b/www/api/morphology.html
index f76717e..1f148e6 100644
--- a/www/api/morphology.html
+++ b/www/api/morphology.html
@@ -142,7 +142,7 @@
    <a title="Sponsor: Druckerei Online" href="http://www.allesdruck.de">Druckerei Online</a><!-- 201012011200 allesdruck.de-->
 </div>
 <div  class="sponsor">
-   <a title="Sponsor: Webdesign" href="http://www.renehornig.com/" title="Webdesign">Webdesign</a><!-- 20110101000120 -->
+   <a title="Sponsor: Lampe Berger" href="http://www.geschenke-elsen.de/" title="Lampe Berger">Lampe Berger</a><!-- 20106101000040 -->
 </div>
 </div>
 </div>
@@ -227,72 +227,88 @@
 
 <p>Convolution Kernels</p></ol>
 
-<p>Gaussian:{radius},{sigma} Generate a two-dimentional gaussian kernel, as used by -gaussian. A sigma is required.</p></ol>
+<p>Gaussian:{radius},{sigma} Generate a two-dimentional gaussian kernel, as used by -gaussian. The sigma for the curve is required.  The resulting kernel is normalized,</p></ol>
+
+<p>If 'sigma' is zero, you get a single pixel on a field of zeros.</p></ol>
 
 <p>NOTE: that the 'radius' is optional, but if provided can limit (clip) the final size of the resulting kernel to a square 2*radius+1 in size. The radius should be at least 2 times that of the sigma value, or sever clipping and aliasing may result.  If not given or set to 0 the radius will be determined so as to produce the best minimal error result, which is usally much larger than is normally needed.</p></ol>
 
-<p>Blur:{radius},{sigma},{angle} As per Gaussian, but generates a 1 dimensional or linear gaussian blur, at the angle given (current restricted to orthogonal angles). If a 'radius' is given the kernel is clipped to a width of 2*radius+1. Angle can be rotated in multiples of 90 degrees.</p></ol>
+<p>DOG:{radius},{sigma1},{sigma2} "Difference of Gaussians" Kernel. As "Gaussian" but with a gaussian produced by 'sigma2' subtracted from the gaussian produced by 'sigma1'. Typically sigma2 > sigma1. The result is a zero-summing kernel.</p></ol>
 
-<p>Note that two such blurs perpendicular to each other is equivelent to the far large "Gaussian" kernel, but much faster to apply. This is how the -blur operator works.</p></ol>
+<p>Blur:{radius},{sigma}[,{angle}] Generates a 1 dimensional or linear gaussian blur, at the angle given (current restricted to orthogonal angles).  If a 'radius' is given the kernel is clipped to a width of 2*radius+1.  Kernel can be rotated by a 90 degree angle.</p></ol>
+
+<p>If 'sigma' is zero, you get a single pixel on a field of zeros.</p></ol>
+
+<p>Note that two convolutions with two "Blur" kernels perpendicular to each other, is equivelent to a far larger "Gaussian" kernel with the same sigma value, However it is much faster to apply. This is how the "-blur" operator actually works.</p></ol>
+
+<p>DOB:{radius},{sigma1},{sigma2}[,{angle}] "Difference of Blurs" Kernel. As "Blur" but with the 1D gaussian produced by 'sigma2' subtracted from thethe 1D gaussian produced by 'sigma1'. The result is a  zero-summing kernel.</p></ol>
+
+<p>This can be used to generate a faster "DOG" convolution, in the same way "Blur" can.</p></ol>
 
 <p>Comet:{width},{sigma},{angle} Blur in one direction only, much like how a bright object leaves a comet like trail.  The Kernel is actually half a gaussian curve, Adding two such blurs in opposite directions produces a Blur Kernel. Angle can be rotated in multiples of 90 degrees.</p></ol>
 
 <p>Note that the first argument is the width of the kernel and not the radius of the kernel.</p></ol>
 
-<p># Still to be implemented... # # DOG:{radius},{sigma1},{sigma2} #    Difference of two Gaussians # # Filter2D # Filter1D #    Set kernel values using a resize filter, and given scale (sigma) #    Cylindrical or Linear.   Is this posible with an image? #</p></ol>
+<p># Still to be implemented... # # Filter2D # Filter1D #    Set kernel values using a resize filter, and given scale (sigma) #    Cylindrical or Linear.   Is this posible with an image? #</p></ol>
 
 <p>Named Constant Convolution Kernels</p></ol>
 
-<p>Sobel:[angle] The 3x3 sobel convolution kernel. Angle may be given in multiples of 45 degrees.  Kernel is unscaled by default so some normalization may be required to ensure results are not clipped. Default kernel is   -1,0,1 -2,0,2 -1,0,1</p></ol>
+<p>All these are unscaled, zero-summing kernels by default. As such for non-HDRI version of ImageMagick some form of normalization, user scaling, and biasing the results is recommended, to prevent the resulting image being 'clipped'.</p></ol>
 
-<p>Laplacian:{type} Generate Lapacian kernel of the type specified. (1 is the default) Type 0 default square laplacian  3x3: all -1's with central 8 Type 1            3x3: central 4 edge -1 corner 0 Type 2            3x3: central 4 edge 1 corner -2 Type 3   a  5x5 laplacian Type 4   a  7x7 laplacian</p></ol>
+<p>The 3x3 kernels (most of these) can be circularly rotated in multiples of 45 degrees to generate the 8 angled varients of each of the kernels.</p></ol>
+
+<p>Laplacian:{type} Generate Lapacian kernel of the type specified. (1 is the default) Type 0 :  3x3 with center:8 surounded by -1  (8 neighbourhood) Type 1 :  3x3 with center:4 edge:-1 corner:0 (4 neighbourhood) Type 2 :  3x3 with center:4 edge:-2 corner:1 Type 3 :  3x3 with center:4 edge:1 corner:-2 Type 4 :  5x5 laplacian Type 5 :  7x7 laplacian</p></ol>
+
+<p>Sobel:{angle} Sobel 3x3 'Edge' convolution kernel (3x3) -1, 0, 1 -2, 0,-2 -1, 0, 1 Roberts:{angle} Roberts 3x3 convolution kernel (3x3) 0, 0, 0 -1, 1, 0 0, 0, 0 Compass:{angle} Prewitt's "Compass" convolution kernel (3x3) -1, 1, 1 -1,-2, 1 -1, 1, 1 Prewitt:{angle} Prewitt Edge convolution kernel (3x3) -1, 0, 1 -1, 0, 1 -1, 0, 1</p></ol>
 
 <p>Boolean Kernels</p></ol>
 
-<p>Rectangle:{geometry} Simply generate a rectangle of 1's with the size given. You can also specify the location of the 'control point', otherwise the closest pixel to the center of the rectangle is selected.</p></ol>
-
-<p>Properly centered and odd sized rectangles work the best.</p></ol>
-
 <p>Diamond:[{radius}[,{scale}]] Generate a diamond shaped kernel with given radius to the points. Kernel size will again be radius*2+1 square and defaults to radius 1, generating a 3x3 kernel that is slightly larger than a square.</p></ol>
 
 <p>Square:[{radius}[,{scale}]] Generate a square shaped kernel of size radius*2+1, and defaulting to a 3x3 (radius 1).</p></ol>
 
-<p>Note that using a larger radius for the "Square" or the "Diamond" is also equivelent to iterating the basic morphological method that many times. However However iterating with the smaller radius 1 default is actually faster than using a larger kernel radius.</p></ol>
+<p>Note that using a larger radius for the "Square" or the "Diamond" is also equivelent to iterating the basic morphological method that many times. However iterating with the smaller radius is actually faster than using a larger kernel radius.</p></ol>
 
-<p>Disk:[{radius}[,{scale}]] Generate a binary disk of the radius given, radius may be a float. Kernel size will be ceil(radius)*2+1 square. NOTE: Here are some disk shapes of specific interest "disk:1"    => "diamond" or "cross:1" "disk:1.5"  => "square" "disk:2"    => "diamond:2" "disk:2.5"  => a general disk shape of radius 2 "disk:2.9"  => "square:2" "disk:3.5"  => default - octagonal/disk shape of radius 3 "disk:4.2"  => roughly octagonal shape of radius 4 "disk:4.3"  => a general disk shape of radius 4 After this all the kernel shape becomes more and more circular.</p></ol>
+<p>Rectangle:{geometry} Simply generate a rectangle of 1's with the size given. You can also specify the location of the 'control point', otherwise the closest pixel to the center of the rectangle is selected.</p></ol>
+
+<p>Properly centered and odd sized rectangles work the best.</p></ol>
+
+<p>Disk:[{radius}[,{scale}]] Generate a binary disk of the radius given, radius may be a float. Kernel size will be ceil(radius)*2+1 square. NOTE: Here are some disk shapes of specific interest "Disk:1"    => "diamond" or "cross:1" "Disk:1.5"  => "square" "Disk:2"    => "diamond:2" "Disk:2.5"  => a general disk shape of radius 2 "Disk:2.9"  => "square:2" "Disk:3.5"  => default - octagonal/disk shape of radius 3 "Disk:4.2"  => roughly octagonal shape of radius 4 "Disk:4.3"  => a general disk shape of radius 4 After this all the kernel shape becomes more and more circular.</p></ol>
 
 <p>Because a "disk" is more circular when using a larger radius, using a larger radius is preferred over iterating the morphological operation.</p></ol>
 
-<p>Plus:[{radius}[,{scale}]] Cross:[{radius}[,{scale}]] Generate a kernel in the shape of a 'plus' or a cross. The length of each arm is also the radius, which defaults to 2.</p></ol>
+<p>Symbol Dilation Kernels</p></ol>
 
-<p>NOTE: "plus:1" is equivelent to a "Diamond" kernel.</p></ol>
-
-<p>This kernel is not a good general morphological kernel, but is used more for highlighting and marking any single pixels in an image using, a "Dilate" or "Erode" method as appropriate.</p></ol>
+<p>These kernel is not a good general morphological kernel, but is used more for highlighting and marking any single pixels in an image using, a "Dilate" method as appropriate.</p></ol>
 
 <p>For the same reasons iterating these kernels does not produce the same result as using a larger radius for the symbol.</p></ol>
 
+<p>Plus:[{radius}[,{scale}]] Cross:[{radius}[,{scale}]] Generate a kernel in the shape of a 'plus' or a 'cross' with a each arm the length of the given radius (default 2).</p></ol>
+
+<p>NOTE: "plus:1" is equivelent to a "Diamond" kernel.</p></ol>
+
+<p>Ring:{radius1},{radius2}[,{scale}] A ring of the values given that falls between the two radii. Defaults to a ring of approximataly 3 radius in a 7x7 kernel. This is the 'edge' pixels of the default "Disk" kernel, More specifically, "Ring" -> "Ring:2.5,3.5,1.0"</p></ol>
+
 <p>Hit and Miss Kernels</p></ol>
 
-<p>Peak:radius1,radius2 Find a foreground inside a background ring of the given radii. Corners Find corners of a binary shape LineEnds Find end points of lines (for pruning a skeletion) LineJunctions Find three line junctions (in a skeletion) ConvexHull Octagonal thicken kernel, to generate convex hulls of 45 degrees Skeleton Thinning kernel, which leaves behind a skeletion of a shape</p></ol>
+<p>Peak:radius1,radius2 Find any peak larger than the pixels the fall between the two radii. The default ring of pixels is as per "Ring". Corners Find corners of a binary shape LineEnds Find end points of lines (for pruning a skeletion) LineJunctions Find three line junctions (in a skeletion) ConvexHull Octagonal thicken kernel, to generate convex hulls of 45 degrees Skeleton Thinning kernel, which leaves behind a skeletion of a shape</p></ol>
 
 <p>Distance Measuring Kernels</p></ol>
 
-<p>Chebyshev:[{radius}][x{scale}[!]] Manhatten:[{radius}][x{scale}[!]] Euclidean:[{radius}][x{scale}[!]]</p></ol>
-
 <p>Different types of distance measuring methods, which are used with the a 'Distance' morphology method for generating a gradient based on distance from an edge of a binary shape, though there is a technique for handling a anti-aliased shape.</p></ol>
 
-<p>Chebyshev Distance (also known as Tchebychev Distance) is a value of one to any neighbour, orthogonal or diagonal. One why of thinking of it is the number of squares a 'King' or 'Queen' in chess needs to traverse reach any other position on a chess board.  It results in a 'square' like distance function, but one where diagonals are closer than expected.</p></ol>
+<p>See the 'Distance' Morphological Method, for information of how it is applied.</p></ol>
 
-<p>Manhatten Distance (also known as Rectilinear Distance, or the Taxi Cab metric), is the distance needed when you can only travel in orthogonal (horizontal or vertical) only.  It is the distance a 'Rook' in chess would travel. It results in a diamond like distances, where diagonals are further than expected.</p></ol>
+<p>Chebyshev:[{radius}][x{scale}[!]] Chebyshev Distance (also known as Tchebychev Distance) is a value of one to any neighbour, orthogonal or diagonal. One why of thinking of it is the number of squares a 'King' or 'Queen' in chess needs to traverse reach any other position on a chess board.  It results in a 'square' like distance function, but one where diagonals are closer than expected.</p></ol>
 
-<p>Euclidean Distance is the 'direct' or 'as the crow flys distance. However by default the kernel size only has a radius of 1, which limits the distance to 'Knight' like moves, with only orthogonal and diagonal measurements being correct.  As such for the default kernel you will get octagonal like distance function, which is reasonally accurate.</p></ol>
+<p>Manhatten:[{radius}][x{scale}[!]] Manhatten Distance (also known as Rectilinear Distance, or the Taxi Cab metric), is the distance needed when you can only travel in orthogonal (horizontal or vertical) only.  It is the distance a 'Rook' in chess would travel. It results in a diamond like distances, where diagonals are further than expected.</p></ol>
+
+<p>Euclidean:[{radius}][x{scale}[!]] Euclidean Distance is the 'direct' or 'as the crow flys distance. However by default the kernel size only has a radius of 1, which limits the distance to 'Knight' like moves, with only orthogonal and diagonal measurements being correct.  As such for the default kernel you will get octagonal like distance function, which is reasonally accurate.</p></ol>
 
 <p>However if you use a larger radius such as "Euclidean:4" you will get a much smoother distance gradient from the edge of the shape. Of course a larger kernel is slower to use, and generally not needed.</p></ol>
 
 <p>To allow the use of fractional distances that you get with diagonals the actual distance is scaled by a fixed value which the user can provide.  This is not actually nessary for either ""Chebyshev" or "Manhatten" distance kernels, but is done for all three distance kernels.  If no scale is provided it is set to a value of 100, allowing for a maximum distance measurement of 655 pixels using a Q16 version of IM, from any edge.  However for small images this can result in quite a dark gradient.</p></ol>
 
-<p>See the 'Distance' Morphological Method, for information of how it is applied.</p></ol>
-
  </div>
 <h2><a href="http://www.imagemagick.org/api/MagickCore/morphology
 _8c.html" target="source" name="CloneKernelInfo">CloneKernelInfo</a></h2>
@@ -454,7 +470,7 @@
  <!--    <span id="linkbar-west">&nbsp;</span>  -->

     <span id="linkbar-center">

       <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;

-    <a href="http://studio.webbyland.com/ImageMagick/MagickStudio/scripts/MagickStudio.cgi">Studio</a>

+    <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>

     </span>

     <span id="linkbar-east">&nbsp;</span>

   </div>