diff --git a/MagickCore/effect.c b/MagickCore/effect.c
index 4cfa217..1c20396 100644
--- a/MagickCore/effect.c
+++ b/MagickCore/effect.c
@@ -229,7 +229,7 @@
   /*
     Edge detect the image brighness channel, level, blur, and level again.
   */
-  edge_image=EdgeImage(image,radius,sigma,exception);
+  edge_image=EdgeImage(image,radius,exception);
   if (edge_image == (Image *) NULL)
     {
       blur_image=DestroyImage(blur_image);
@@ -554,7 +554,7 @@
   /*
     Edge detect the image brighness channel, level, sharp, and level again.
   */
-  edge_image=EdgeImage(image,radius,sigma,exception);
+  edge_image=EdgeImage(image,radius,exception);
   if (edge_image == (Image *) NULL)
     {
       sharp_image=DestroyImage(sharp_image);
@@ -1189,7 +1189,7 @@
 %  The format of the EdgeImage method is:
 %
 %      Image *EdgeImage(const Image *image,const double radius,
-%        const double sigma,ExceptionInfo *exception)
+%        ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -1197,30 +1197,20 @@
 %
 %    o radius: the radius of the pixel neighborhood.
 %
-%    o sigma: the standard deviation of the Gaussian, in pixels.
-%
 %    o exception: return any errors or warnings in this structure.
 %
 */
 MagickExport Image *EdgeImage(const Image *image,const double radius,
-  const double sigma,ExceptionInfo *exception)
+  ExceptionInfo *exception)
 {
-  Image
-    *edge_image;
+  char
+    geometry[MaxTextExtent];
 
   KernelInfo
     *kernel_info;
 
-  register ssize_t
-    i;
-
-  size_t
-    width;
-
-  ssize_t
-    j,
-    u,
-    v;
+  Image
+    *edge_image;
 
   assert(image != (const Image *) NULL);
   assert(image->signature == MagickSignature);
@@ -1228,34 +1218,11 @@
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   assert(exception != (ExceptionInfo *) NULL);
   assert(exception->signature == MagickSignature);
-  width=GetOptimalKernelWidth1D(radius,sigma);
-  kernel_info=AcquireKernelInfo((const char *) NULL);
+  (void) FormatLocaleString(geometry,MaxTextExtent,"laplacian:%.20g",radius);
+  kernel_info=AcquireKernelInfo(geometry);
   if (kernel_info == (KernelInfo *) NULL)
     ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
-  kernel_info->width=width;
-  kernel_info->height=width;
-  kernel_info->x=(ssize_t) (width-1)/2;
-  kernel_info->y=(ssize_t) (width-1)/2;
-  kernel_info->values=(MagickRealType *) MagickAssumeAligned(
-    AcquireAlignedMemory(kernel_info->width,kernel_info->width*
-    sizeof(*kernel_info->values)));
-  if (kernel_info->values == (MagickRealType *) NULL)
-    {
-      kernel_info=DestroyKernelInfo(kernel_info);
-      ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
-    }
-  j=(ssize_t) (kernel_info->width-1)/2;
-  i=0;
-  for (v=(-j); v <= j; v++)
-  {
-    for (u=(-j); u <= j; u++)
-    {
-      kernel_info->values[i]=(MagickRealType) (-1.0);
-      i++;
-    }
-  }
-  kernel_info->values[(i-1)/2]=(MagickRealType) (width*width-1.0);
-  edge_image=ConvolveImage(image,kernel_info,exception);
+  edge_image=MorphologyImage(image,ConvolveMorphology,1,kernel_info,exception);
   kernel_info=DestroyKernelInfo(kernel_info);
   return(edge_image);
 }
@@ -2031,7 +1998,7 @@
       }
       case EdgeDetectPreview:
       {
-        preview_image=EdgeImage(thumbnail,radius,sigma,exception);
+        preview_image=EdgeImage(thumbnail,radius,exception);
         (void) FormatLocaleString(label,MaxTextExtent,"edge %g",radius);
         break;
       }
@@ -3112,7 +3079,7 @@
     *kernel_info;
 
   Image
-    *sharpen_image;
+    *sharp_image;
 
   assert(image != (const Image *) NULL);
   assert(image->signature == MagickSignature);
@@ -3126,10 +3093,10 @@
   if (kernel_info == (KernelInfo *) NULL)
     ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
   ScaleGeometryKernelInfo(kernel_info,"56!,100%");
-  sharpen_image=MorphologyImage(image,ConvolveMorphology,1,kernel_info,
+  sharp_image=MorphologyImage(image,ConvolveMorphology,1,kernel_info,
     exception);
   kernel_info=DestroyKernelInfo(kernel_info);
-  return(sharpen_image);
+  return(sharp_image);
 }
 
 /*