diff --git a/src/fonts.js b/src/fonts.js
index 1a4366c19..7d350ebc5 100644
--- a/src/fonts.js
+++ b/src/fonts.js
@@ -1785,6 +1785,12 @@ var Font = (function Font() {
         }
         properties.hasShortCmap = hasShortCmap;
 
+        // remove glyph references outside range of avaialable glyphs
+        for (var i = 0, ii = ids.length; i < ii; i++) {
+          if (ids[i] >= numGlyphs)
+            ids[i] = 0;
+        }
+
         createGlyphNameMap(glyphs, ids, properties);
         this.glyphNameMap = properties.glyphNameMap;
 
diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore
index 325987de6..7a36acd58 100644
--- a/test/pdfs/.gitignore
+++ b/test/pdfs/.gitignore
@@ -17,3 +17,4 @@
 !devicen.pdf
 !cmykjpeg.pdf
 !issue840.pdf
+!freeculture.pdf
diff --git a/test/pdfs/freeculture.pdf b/test/pdfs/freeculture.pdf
new file mode 100644
index 000000000..8b27e9355
Binary files /dev/null and b/test/pdfs/freeculture.pdf differ
diff --git a/test/test_manifest.json b/test/test_manifest.json
index bd50068f7..27508032c 100644
--- a/test/test_manifest.json
+++ b/test/test_manifest.json
@@ -87,6 +87,13 @@
        "rounds": 1,
        "type": "eq"
     },
+    {  "id": "freeculture",
+       "file": "pdfs/freeculture.pdf",
+       "md5": "dcdf3a8268e6a18938a42d5149efcfca",
+       "rounds": 1,
+       "pageLimit": 5,
+       "type": "eq"
+    },
     {  "id": "wnv_chinese-pdf",
        "file": "pdfs/wnv_chinese.pdf",
        "md5": "db682638e68391125e8982d3c984841e",