diff --git a/ChangeLog b/ChangeLog
index fb77ee5..37fd01a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 2009-10-26  6.5.7-2 Chris Madison  <madisonblu@gmail...>
   * Only call InstantiateXComponent() if X11 support is included.
   * Correct hue computation for the HSB colorspace.
+  * Convert SVG clipping path points from unsigned to long.
 
 2009-10-23  6.5.7-1 Samuel Thibault  <samuel.thibault@ens-l...>
   * Braille coder fix for DirectClass images
diff --git a/ImageMagick.spec b/ImageMagick.spec
index 303d8d0..adbe6d2 100644
--- a/ImageMagick.spec
+++ b/ImageMagick.spec
@@ -1,5 +1,5 @@
 %define VERSION  6.5.7
-%define Patchlevel  3
+%define Patchlevel  2
 
 Name:           ImageMagick
 Version:        %{VERSION}
diff --git a/config/configure.xml b/config/configure.xml
index 4d71eb2..bb058f6 100644
--- a/config/configure.xml
+++ b/config/configure.xml
@@ -8,7 +8,7 @@
 <configuremap>
   <configure name="NAME" value="ImageMagick"/>
   <configure name="LIB_VERSION" value="0x657"/>
-  <configure name="LIB_VERSION_NUMBER" value="6,5,7,3"/>
+  <configure name="LIB_VERSION_NUMBER" value="6,5,7,2"/>
   <configure name="RELEASE_DATE" value="2009-10-26"/>
   <configure name="CONFIGURE" value="./configure "/>
   <configure name="PREFIX" value="/usr/local"/>
diff --git a/libtool b/libtool
index 23e6718..f0cc226 100755
--- a/libtool
+++ b/libtool
@@ -1,7 +1,7 @@
 #! /bin/sh
 
 # libtool - Provide generalized library-building support services.
-# Generated automatically by config.status (ImageMagick) 6.5.7-3
+# Generated automatically by config.status (ImageMagick) 6.5.7-2
 # Libtool was configured on host magick.imagemagick.org:
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
diff --git a/magick/property.c b/magick/property.c
index 1657f06..d4b04e5 100644
--- a/magick/property.c
+++ b/magick/property.c
@@ -1659,8 +1659,18 @@
         */
         for (i=0; i < 3; i++)
         {
-          y=(long) ReadPropertyMSBLong(&blob,&length);
-          x=(long) ReadPropertyMSBLong(&blob,&length);
+          unsigned long 
+            xx,
+            yy;
+
+          yy=ReadPropertyMSBLong(&blob,&length);
+          xx=ReadPropertyMSBLong(&blob,&length);
+          x=(long) xx;
+          if (xx > 2147483647)
+            x=xx-4294967295-1;
+          y=(long) yy;
+          if (yy > 2147483647)
+            y=yy-4294967295-1;
           point[i].x=(double) x/4096/4096;
           point[i].y=1.0-(double) y/4096/4096;
         }
@@ -1839,65 +1849,73 @@
             */
             blob+=24;
             length-=24;
+            break;
+          }
+        /*
+          Add sub-path knot
+        */
+        for (i=0; i < 3; i++)
+        {
+          unsigned long 
+            xx,
+            yy;
+
+          yy=ReadPropertyMSBLong(&blob,&length);
+          xx=ReadPropertyMSBLong(&blob,&length);
+          x=(long) xx;
+          if (xx > 2147483647)
+            x=xx-4294967295-1;
+          y=(long) yy;
+          if (yy > 2147483647)
+            y=yy-4294967295-1;
+          point[i].x=(double) x*columns/4096/4096;
+          point[i].y=(double) y*rows/4096/4096;
+        }
+        if (in_subpath == MagickFalse)
+          {
+            (void) FormatMagickString(message,MaxTextExtent,"M %g,%g\n",
+              point[1].x,point[1].y);
+            for (i=0; i < 3; i++)
+            {
+              first[i]=point[i];
+              last[i]=point[i];
+            }
           }
         else
           {
-            /*
-              Add sub-path knot
-            */
+            if ((last[1].x == last[2].x) && (last[1].y == last[2].y) &&
+                (point[0].x == point[1].x) && (point[0].y == point[1].y))
+              (void) FormatMagickString(message,MaxTextExtent,"L %g,%g\n",
+                point[1].x,point[1].y);
+            else
+              (void) FormatMagickString(message,MaxTextExtent,
+                "C %g,%g %g,%g %g,%g\n",last[2].x,last[2].y,
+                point[0].x,point[0].y,point[1].x,point[1].y);
             for (i=0; i < 3; i++)
-            {
-              y=(long) ReadPropertyMSBLong(&blob,&length);
-              x=(long) ReadPropertyMSBLong(&blob,&length);
-              point[i].x=(double) x*columns/4096/4096;
-              point[i].y=(double) y*rows/4096/4096;
-            }
-            if (in_subpath == MagickFalse)
-              {
-                (void) FormatMagickString(message,MaxTextExtent,"M %g,%g\n",
-                  point[1].x,point[1].y);
-                for (i=0; i < 3; i++)
-                {
-                  first[i]=point[i];
-                  last[i]=point[i];
-                }
-              }
+              last[i]=point[i];
+          }
+        (void) ConcatenateString(&path,message);
+        in_subpath=MagickTrue;
+        knot_count--;
+        /*
+          Close the subpath if there are no more knots.
+        */
+        if (knot_count == 0)
+          {
+            if ((last[1].x == last[2].x) && (last[1].y == last[2].y) &&
+                (first[0].x == first[1].x) && (first[0].y == first[1].y))
+              (void) FormatMagickString(message,MaxTextExtent,"L %g,%g Z\n",
+                first[1].x,first[1].y);
             else
               {
-                if ((last[1].x == last[2].x) && (last[1].y == last[2].y) &&
-                    (point[0].x == point[1].x) && (point[0].y == point[1].y))
-                  (void) FormatMagickString(message,MaxTextExtent,"L %g,%g\n",
-                    point[1].x,point[1].y);
-                else
-                  (void) FormatMagickString(message,MaxTextExtent,
-                    "C %g,%g %g,%g %g,%g\n",last[2].x,last[2].y,
-                    point[0].x,point[0].y,point[1].x,point[1].y);
-                for (i=0; i < 3; i++)
-                  last[i]=point[i];
+                (void) FormatMagickString(message,MaxTextExtent,
+                  "C %g,%g %g,%g %g,%g Z\n",last[2].x,last[2].y,
+                  first[0].x,first[0].y,first[1].x,first[1].y);
+                (void) ConcatenateString(&path,message);
               }
-            (void) ConcatenateString(&path,message);
-            in_subpath=MagickTrue;
-            knot_count--;
-            /*
-              Close the subpath if there are no more knots.
-            */
-            if (knot_count == 0)
-              {
-                if ((last[1].x == last[2].x) && (last[1].y == last[2].y) &&
-                    (first[0].x == first[1].x) && (first[0].y == first[1].y))
-                  (void) FormatMagickString(message,MaxTextExtent,"L %g,%g Z\n",
-                    first[1].x,first[1].y);
-                else
-                  {
-                    (void) FormatMagickString(message,MaxTextExtent,
-                      "C %g,%g %g,%g %g,%g Z\n",last[2].x,last[2].y,
-                      first[0].x,first[0].y,first[1].x,first[1].y);
-                    (void) ConcatenateString(&path,message);
-                  }
-                in_subpath=MagickFalse;
-              }
+            in_subpath=MagickFalse;
           }
-          break;
+        break;
       }
       case 6:
       case 7:
diff --git a/magick/version.h b/magick/version.h
index 48b6cb7..9cae80c 100644
--- a/magick/version.h
+++ b/magick/version.h
@@ -30,7 +30,7 @@
 #define MagickLibVersion  0x657
 #define MagickLibVersionText  "6.5.7"
 #define MagickLibVersionNumber  2,0,0
-#define MagickLibSubversion  "-3"
+#define MagickLibSubversion  "-2"
 #define MagickReleaseDate  "2009-10-26"
 #define MagickChangeDate   "20091026"
 #define MagickAuthoritativeURL  "http://www.imagemagick.org"
diff --git a/version.sh b/version.sh
index cadc172..5203344 100644
--- a/version.sh
+++ b/version.sh
@@ -12,7 +12,7 @@
 # PACKAGE_NAME (e.g. "1.0.0").
 PACKAGE_VERSION='6.5.7'
 PACKAGE_LIB_VERSION="0x657"
-PACKAGE_RELEASE="3"
+PACKAGE_RELEASE="2"
 PACKAGE_LIB_VERSION_NUMBER="6,5,7,${PACKAGE_RELEASE}"
 PACKAGE_RELEASE_DATE=`date +%F`
 PACKAGE_STRING="$PACKAGE_NAME $PACKAGE_VERSION"