fixed a bug reported by Graham Asher
diff --git a/ChangeLog b/ChangeLog
index 6495ede..04802b7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2001-02-22  David Turner    <david.turner@freetype.org>
+
+	* src/base/ftgrays.c (grays_sweep): the function didn't exit
+	immediately if "num_cells" was 0 as it should. Thanks to Boris
+	for finding this out.
+
+	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): fixed memory leak when
+	bitmap rendering fails.. (thanks to Graham Asher)
+
 2001-02-13  Werner Lemberg  <wl@gnu.org>
 
 	* docs/docmaker.py (DocSection::add_element): Use
diff --git a/src/base/ftglyph.c b/src/base/ftglyph.c
index 95049ae..20d2cdf 100644
--- a/src/base/ftglyph.c
+++ b/src/base/ftglyph.c
@@ -602,6 +602,12 @@
     if ( !error )
       error = FT_Render_Glyph_Internal( glyph->library, &dummy, render_mode );
 
+    if (error)
+    {
+      FT_Glyph_Done( FT_GLYPH(bitmap) );
+      goto Exit;
+    }
+    
     if ( !destroy && origin )
     {
       FT_Vector  v;
diff --git a/src/smooth/ftgrays.c b/src/smooth/ftgrays.c
index d06bb28..291e62e 100644
--- a/src/smooth/ftgrays.c
+++ b/src/smooth/ftgrays.c
@@ -1359,7 +1359,9 @@
 
     FT_UNUSED( target );
 
-
+    if ( ras.num_cells == 0 )
+      return;
+      
     cur   = ras.cells;
     limit = cur + ras.num_cells;