* src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
diff --git a/ChangeLog b/ChangeLog
index 7069363..78b872b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2007-06-06  Werner Lemberg  <wl@gnu.org>
+
+	* src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
+
 2007-06-05  Werner Lemberg  <wl@gnu.org>
 
 	* src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
diff --git a/src/base/ftoutln.c b/src/base/ftoutln.c
index 2a35659..6926f3a 100644
--- a/src/base/ftoutln.c
+++ b/src/base/ftoutln.c
@@ -83,7 +83,9 @@
       FT_Int  last;  /* index of last point in contour */
 
 
-      last  = outline->contours[n];
+      last = outline->contours[n];
+      if ( last < 0 )
+        goto Invalid_Outline;
       limit = outline->points + last;
 
       v_start = outline->points[first];