diff --git a/src/fontfile/decompress.c b/src/fontfile/decompress.c
index b1fc37b8561c828d59913d4c4ef2240bfc58fc37..c8171dd4a897e4c0045a7973ba6aaeba32de9d7e 100644
--- a/src/fontfile/decompress.c
+++ b/src/fontfile/decompress.c
@@ -259,6 +259,8 @@ BufCompressedFill (BufFilePtr f)
      	 */
     	while ( code >= 256 )
     	{
+	    if (stackp - de_stack >= STACK_SIZE - 1)
+		return BUFFILEEOF;
 	    *stackp++ = file->tab_suffix[code];
 	    code = file->tab_prefix[code];
     	}