diff --git a/src/core/evaluator.js b/src/core/evaluator.js
index bdeb1af80..c5a001ccd 100644
--- a/src/core/evaluator.js
+++ b/src/core/evaluator.js
@@ -858,7 +858,17 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
         } else if (isName(encoding)) {
           overridableEncoding = false;
           hasEncoding = true;
-          baseEncoding = Encodings[encoding.name];
+          var currentEncoding = Encodings[encoding.name];
+
+          // Some bad PDF files contain fonts whose encoding name is not among
+          // the predefined encodings, causing baseEncoding to be undefined.
+          // In this case, fallback to using the baseEncoding as defined above
+          // and let the font override the encoding if one is available.
+          if (currentEncoding) {
+            baseEncoding = currentEncoding;
+          } else {
+            overridableEncoding = true;
+          }
         } else {
           error('Encoding is not a Name nor a Dict');
         }
diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore
index 7f6c51ff1..2d5aa76a7 100644
--- a/test/pdfs/.gitignore
+++ b/test/pdfs/.gitignore
@@ -64,3 +64,4 @@
 !issue2956.pdf
 !bug946506.pdf
 !issue3885.pdf
+!bug859204.pdf
diff --git a/test/pdfs/bug859204.pdf b/test/pdfs/bug859204.pdf
new file mode 100644
index 000000000..5f7a936bb
Binary files /dev/null and b/test/pdfs/bug859204.pdf differ
diff --git a/test/test_manifest.json b/test/test_manifest.json
index 2b577c70c..cd5c630f1 100644
--- a/test/test_manifest.json
+++ b/test/test_manifest.json
@@ -172,6 +172,13 @@
        "rounds": 1,
        "type": "eq"
     },
+    {  "id": "bug859204",
+       "file": "pdfs/bug859204.pdf",
+       "md5": "ac1ea1dbfa6ac9d5b13167483049af0b",
+       "link": false,
+       "rounds": 1,
+       "type": "eq"
+    },
     {  "id": "issue1512",
        "file": "pdfs/issue1512.pdf",
        "md5": "41a19fe03d522346ee3baa732403fca4",