diff --git a/MagickCore/draw.c b/MagickCore/draw.c
index 9f7de56..1a18924 100644
--- a/MagickCore/draw.c
+++ b/MagickCore/draw.c
@@ -3608,10 +3608,9 @@
   return(polygon_info);
 }
 
-static double GetFillAlpha(PolygonInfo *polygon_info,
-  const double mid,const MagickBooleanType fill,
-  const FillRule fill_rule,const double x,const double y,
-  double *stroke_alpha)
+static double GetFillAlpha(PolygonInfo *polygon_info,const double mid,
+  const MagickBooleanType fill,const FillRule fill_rule,const double x,
+  const double y,double *stroke_alpha)
 {
   double
     alpha,
@@ -3622,12 +3621,12 @@
   PointInfo
     delta;
 
-  register EdgeInfo
-    *p;
-
   register const PointInfo
     *q;
 
+  register EdgeInfo
+    *p;
+
   register ssize_t
     i;
 
@@ -3688,7 +3687,7 @@
             }
           else
             {
-              alpha=1.0/alpha;
+              alpha=MagickEpsilonReciprocal(alpha);
               beta=delta.x*(y-q->y)-delta.y*(x-q->x);
               distance=alpha*beta*beta;
             }