diff --git a/pdf.js b/pdf.js
index 3fa22496a..cd643e760 100644
--- a/pdf.js
+++ b/pdf.js
@@ -4366,6 +4366,20 @@ var PartialEvaluator = (function partialEvaluator() {
         if (isCmd(obj)) {
           var cmd = obj.cmd;
           var fn = OP_MAP[cmd];
+          if (!fn) {
+            // invalid content command, trying to recover
+            if (cmd.substr(-2) == 'BT') {
+              fn = OP_MAP[cmd.substr(0, cmd.length - 2)];
+              // feeding 'BT' on next interation
+              parser = {
+                getObj: function() {
+                  parser = this.oldParser;
+                  return { name: 'BT' };
+                },
+                oldParser: parser
+              };
+            }
+          }
           assertWellFormed(fn, "Unknown command '" + cmd + "'");
           // TODO figure out how to type-check vararg functions
 
diff --git a/test/pdfs/vesta.pdf.link b/test/pdfs/vesta.pdf.link
new file mode 100644
index 000000000..7aa348dff
--- /dev/null
+++ b/test/pdfs/vesta.pdf.link
@@ -0,0 +1 @@
+http://www-csag.ucsd.edu/~jburke/Vesta/Vesta_Overview.pdf
diff --git a/test/test_manifest.json b/test/test_manifest.json
index 71738f192..51428190d 100644
--- a/test/test_manifest.json
+++ b/test/test_manifest.json
@@ -158,6 +158,12 @@
        "rounds": 1,
        "type": "load"
     },
+    {  "id": "vesta-bad",
+       "file": "pdfs/vesta.pdf",
+       "link": true,
+       "rounds": 1,
+       "type": "load"
+    },
     {  "id": "ibwa-bad",
        "file": "pdfs/ibwa-bad.pdf",
        "link": true,