6ccfd1
--- libwmf-0.2.8.4/src/extra/gd/gd.c
6ccfd1
+++ libwmf-0.2.8.4/src/extra/gd/gd.c
6ccfd1
@@ -1335,10 +1335,31 @@
6ccfd1
   int w2, h2;
6ccfd1
   w2 = w / 2;
6ccfd1
   h2 = h / 2;
6ccfd1
-  while (e < s)
6ccfd1
-    {
6ccfd1
-      e += 360;
6ccfd1
-    }
6ccfd1
+
6ccfd1
+  if ((s % 360)  == (e % 360)) {
6ccfd1
+         s = 0; e = 360;
6ccfd1
+  } else {
6ccfd1
+         if (s > 360) {
6ccfd1
+                 s = s % 360;
6ccfd1
+         }
6ccfd1
+
6ccfd1
+         if (e > 360) {
6ccfd1
+                 e = e % 360;
6ccfd1
+         }
6ccfd1
+
6ccfd1
+         while (s < 0) {
6ccfd1
+                 s += 360;
6ccfd1
+         }
6ccfd1
+
6ccfd1
+         while (e < s) {
6ccfd1
+                 e += 360;
6ccfd1
+         }
6ccfd1
+
6ccfd1
+         if (s == e) {
6ccfd1
+                 s = 0; e = 360;
6ccfd1
+         }
6ccfd1
+  }
6ccfd1
+
6ccfd1
   for (i = s; (i <= e); i++)
6ccfd1
     {
6ccfd1
       int x, y;