diff --git a/magick/draw.c b/magick/draw.c
index 38d3083..8c26e54 100644
--- a/magick/draw.c
+++ b/magick/draw.c
@@ -2869,8 +2869,9 @@
               t++;
               continue;
             }
-          length+=BezierQuantum;
+          length++;
         }
+        length=3*length/2+6*BezierQuantum+360;
         break;
       }
       case CirclePrimitive:
@@ -2885,7 +2886,7 @@
         alpha=bounds.x2-bounds.x1;
         beta=bounds.y2-bounds.y1;
         radius=hypot((double) alpha,(double) beta);
-        length=2*((size_t) (MagickPI*radius))+6*BezierQuantum+360+1;
+        length=2*((size_t) ceil(MagickPI*radius))+6*BezierQuantum+360;
         break;
       }
       default: