diff --git a/bower.json b/bower.json
index 25de7d173..7a486577b 100644
--- a/bower.json
+++ b/bower.json
@@ -1,6 +1,6 @@
 {
   "name": "pdfjs-dist",
-  "version": "1.1.240",
+  "version": "1.1.242",
   "main": [
     "build/pdf.js",
     "build/pdf.worker.js"
diff --git a/build/pdf.combined.js b/build/pdf.combined.js
index b8935a47b..edd90c5d8 100644
--- a/build/pdf.combined.js
+++ b/build/pdf.combined.js
@@ -22,8 +22,8 @@ if (typeof PDFJS === 'undefined') {
   (typeof window !== 'undefined' ? window : this).PDFJS = {};
 }
 
-PDFJS.version = '1.1.240';
-PDFJS.build = '9bb2908';
+PDFJS.version = '1.1.242';
+PDFJS.build = 'd8e2014';
 
 (function pdfjsWrapper() {
   // Use strict in our context only - users might not want it
@@ -24912,13 +24912,17 @@ var Font = (function FontClosure() {
 
       var charCodeToGlyphId = [], charCode;
       var toUnicode = properties.toUnicode, widths = properties.widths;
-      var isIdentityUnicode = toUnicode instanceof IdentityToUnicodeMap;
+      var skipToUnicode = (toUnicode instanceof IdentityToUnicodeMap ||
+                           toUnicode.length === 0x10000);
 
+      // Helper function to try to skip mapping of empty glyphs.
+      // Note: In some cases, just relying on the glyph data doesn't work,
+      //       hence we also use a few heuristics to fix various PDF files.
       function hasGlyph(glyphId, charCode, widthCode) {
         if (!missingGlyphs[glyphId]) {
           return true;
         }
-        if (!isIdentityUnicode && charCode >= 0 && toUnicode.has(charCode)) {
+        if (!skipToUnicode && charCode >= 0 && toUnicode.has(charCode)) {
           return true;
         }
         if (widths && widthCode >= 0 && isNum(widths[widthCode])) {
diff --git a/build/pdf.js b/build/pdf.js
index ac08d4e67..dc747571f 100644
--- a/build/pdf.js
+++ b/build/pdf.js
@@ -22,8 +22,8 @@ if (typeof PDFJS === 'undefined') {
   (typeof window !== 'undefined' ? window : this).PDFJS = {};
 }
 
-PDFJS.version = '1.1.240';
-PDFJS.build = '9bb2908';
+PDFJS.version = '1.1.242';
+PDFJS.build = 'd8e2014';
 
 (function pdfjsWrapper() {
   // Use strict in our context only - users might not want it
diff --git a/build/pdf.worker.js b/build/pdf.worker.js
index 2dcd3d4a3..4908b893b 100644
--- a/build/pdf.worker.js
+++ b/build/pdf.worker.js
@@ -22,8 +22,8 @@ if (typeof PDFJS === 'undefined') {
   (typeof window !== 'undefined' ? window : this).PDFJS = {};
 }
 
-PDFJS.version = '1.1.240';
-PDFJS.build = '9bb2908';
+PDFJS.version = '1.1.242';
+PDFJS.build = 'd8e2014';
 
 (function pdfjsWrapper() {
   // Use strict in our context only - users might not want it
@@ -18513,13 +18513,17 @@ var Font = (function FontClosure() {
 
       var charCodeToGlyphId = [], charCode;
       var toUnicode = properties.toUnicode, widths = properties.widths;
-      var isIdentityUnicode = toUnicode instanceof IdentityToUnicodeMap;
+      var skipToUnicode = (toUnicode instanceof IdentityToUnicodeMap ||
+                           toUnicode.length === 0x10000);
 
+      // Helper function to try to skip mapping of empty glyphs.
+      // Note: In some cases, just relying on the glyph data doesn't work,
+      //       hence we also use a few heuristics to fix various PDF files.
       function hasGlyph(glyphId, charCode, widthCode) {
         if (!missingGlyphs[glyphId]) {
           return true;
         }
-        if (!isIdentityUnicode && charCode >= 0 && toUnicode.has(charCode)) {
+        if (!skipToUnicode && charCode >= 0 && toUnicode.has(charCode)) {
           return true;
         }
         if (widths && widthCode >= 0 && isNum(widths[widthCode])) {
diff --git a/package.json b/package.json
index 67c3e061a..9943dd6e4 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "pdfjs-dist",
-  "version": "1.1.240",
+  "version": "1.1.242",
   "description": "Generic build of Mozilla's PDF.js library.",
   "keywords": [
     "Mozilla",