diff --git a/manifest b/manifest
index fdbedef..77f7d33 100644
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Merge\srecent\senhancements\sfrom\strunk.
-D 2020-05-01T18:58:21.571
+C Corner-case\schanges\sto\sthe\sbytecode\svirtual\stable\sfor\stestability\sand\ncorrectness.
+D 2020-05-02T00:01:39.619
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -534,7 +534,7 @@
 F src/resolve.c d36a2b1639e1c33d7b508abfd3452a63e7fd81737f6f3940bfef085fca6f21f4
 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
 F src/select.c c310de94bf67315054587c18a16e7a3e3dc3a98dc79168f0c2b776548d43f6cd
-F src/shell.c.in 86cd0f0412b9739b769fafdfcad28f731882d522042a95c30ab033a5eba68b03
+F src/shell.c.in cf2d24f54412c06e5fb34af7fabc748651125e1dceac29b740e91f06d23447b6
 F src/sqlite.h.in b20d5dc52765ff82f3701395a7e670611ddf138ee0ae84482452ad3a0b5f24b5
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h 2d1af80082edffd71c6f96f70ad1ce6a4fb46615ad10291fc77fe0dea9ff0197
@@ -609,12 +609,12 @@
 F src/vdbe.h 07b8c636a87df8b6e58f29d6badd7f10d5844353deff1d7c88ed1c2bfe3bbd35
 F src/vdbeInt.h 571413068b5ac07e2ed8ca7a02fa529622fd5455ae6981498376e5e492d2e5ef
 F src/vdbeapi.c d176ee7251d5344de7bb2a0d2dd0fe536834e5843d9bc2389e0f5cdcd5374141
-F src/vdbeaux.c d191d07906d284acb458c8ba3e24a5ea0ab7610c2800f97d683d0917bda0e66d
+F src/vdbeaux.c 319a6e44cff0e8ba710a8374778043609d11cf82cb4ab2ba0a80dde52e607a08
 F src/vdbeblob.c 253ed82894924c362a7fa3079551d3554cd1cdace39aa833da77d3bc67e7c1b1
 F src/vdbemem.c 39b942ecca179f4f30a32b54579a85d74ccaefa5af2a0ad2700abe5ef0768b22
 F src/vdbesort.c 2be76d26998ce2b3324cdcc9f6443728e54b6c7677c553ad909c7d7cfab587df
 F src/vdbetrace.c fa3bf238002f0bbbdfb66cc8afb0cea284ff9f148d6439bc1f6f2b4c3b7143f0
-F src/vdbevtab.c 3f7fd339425729f6cef36ef0bc576bf42641d2a664c746b54a6e2c045ae1a248
+F src/vdbevtab.c 8094dfc28dad82d60a1c832020a1b201a5381dc185c14638affc6d4e9d54c653
 F src/vtab.c 7b704a90515a239c6cdba6a66b1bb3a385e62326cceb5ecb05ec7a091d6b8515
 F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
 F src/wal.c ea8dad28bb0e2b85ac1ab7618968687ff5fd522af8a1a38d6960ec176ebc8ee6
@@ -1863,7 +1863,7 @@
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 7e6576ec00fde277c5c7abac264f7ec7e531de00c4e112bf733a07fe703fadcc 853703cd6d44d6dd48ef5eda6523e374b8ebdf7c338ddaad31c15a40a8b3fd9b
-R e24ff42847364b0b675f72b087b80143
+P 96dfc71ea599702ef38b60952d03e95dce5a8c534cd943e076e9c76b00e61e65
+R 8a6312f86dfd0f2dc1b9dbd32625eb27
 U drh
-Z d4de9e26c72a33ad0b73d11829e14172
+Z 054131aab304a488c76322b7f6a162fc
diff --git a/manifest.uuid b/manifest.uuid
index a6fc3f8..8a146fc 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-96dfc71ea599702ef38b60952d03e95dce5a8c534cd943e076e9c76b00e61e65
\ No newline at end of file
+baa720e4a88f268ed95337daab5f434fd3263b00f09101cddc6424765bf3b722
\ No newline at end of file
diff --git a/src/shell.c.in b/src/shell.c.in
index f65caaa..5858296 100644
--- a/src/shell.c.in
+++ b/src/shell.c.in
@@ -3158,6 +3158,7 @@
             const char *zEQPLine = (const char*)sqlite3_column_text(pExplain,3);
             int iEqpId = sqlite3_column_int(pExplain, 0);
             int iParentId = sqlite3_column_int(pExplain, 1);
+            if( zEQPLine==0 ) zEQPLine = "";
             if( zEQPLine[0]=='-' ) eqp_render(pArg);
             eqp_append(pArg, iEqpId, iParentId, zEQPLine);
           }
diff --git a/src/vdbeaux.c b/src/vdbeaux.c
index da8108a..454be53 100644
--- a/src/vdbeaux.c
+++ b/src/vdbeaux.c
@@ -1847,7 +1847,8 @@
   ** by the mkopcodeh.awk and mkopcodec.awk scripts which extract the
   ** information from the vdbe.c source text */
   fprintf(pOut, zFormat1, pc, 
-      sqlite3OpcodeName(pOp->opcode), pOp->p1, pOp->p2, pOp->p3, zP4, pOp->p5,
+      sqlite3OpcodeName(pOp->opcode), pOp->p1, pOp->p2, pOp->p3, 
+      zP4 ? zP4 : "", pOp->p5,
       zCom ? zCom : ""
   );
   fflush(pOut);
diff --git a/src/vdbevtab.c b/src/vdbevtab.c
index d97db1c..95ea0ad 100644
--- a/src/vdbevtab.c
+++ b/src/vdbevtab.c
@@ -224,7 +224,6 @@
             if( pIdx->tnum==iRoot ){
               pCur->zName = pIdx->zName;
               pCur->zType = "index";
-              break;
             }
           }
         }
@@ -268,11 +267,11 @@
       break;
     case 8: {   /* subprog */
       Op *aOp = pCur->aOp;
+      assert( aOp[0].opcode==OP_Init );
+      assert( aOp[0].p4.z==0 || strncmp(aOp[0].p4.z,"-" "- ",3)==0 );
       if( pCur->iRowid==pCur->iAddr+1 ){
         break;  /* Result is NULL for the main program */
-      }else if( aOp[0].p4type==P4_DYNAMIC
-       && aOp[0].p4.z!=0
-       && strncmp(aOp[0].p4.z,"-- ", 3)==0 ){
+      }else if( aOp[0].p4.z!=0 ){
          sqlite3_result_text(ctx, aOp[0].p4.z+3, -1, SQLITE_STATIC);
       }else{
          sqlite3_result_text(ctx, "(FK)", 4, SQLITE_STATIC);
