        while(n--) { R[*ip++] = tuple[pos++]; }
        NEXT(0); }
     op33: { /* jrt a t o, jump by raw type (ignoring padding info) */
-@@ -1250,7 +1265,7 @@ invoke: /* nargs and regs ready, maybe gc and execute ob */
+@@ -1254,7 +1301,7 @@ invoke: /* nargs and regs ready, maybe gc and execute ob */
        NEXT(4); }
     op36: { /* size o r */
        word *ob = (word *) R[*ip++];

       *new++ = (hdr&(~2040))|(type<<3);
       wordcopy(ob,new,size-1);
       return (word)res;
@@ -556,7 +564,7 @@ static int prim_refb(word pword, int pos) {
    if (immediatep(ob))
       return -1;
    hdr = *ob;

             regs = (word *) ((word)regs + adjust_heap(dec+MEMPAD*W));
             heapsize = (word) memend - (word) memstart; 
             nfree = (word) memend - (word) regs; 
@@ -325,7 +365,8 @@ static word *gc(int size, word *regs) {
    return regs;
 }
 
-/* OS Interaction and Helpers */
+
+/*** OS Interaction and Helpers ***/
 
 void set_nonblock (int sock) {
 #ifdef WIN32
@@ -484,7 +525,8 @@ unsigned char *load_heap(char *path) {
    return hp;
 }
 
-/* Primops called from VM and generated C-code */
+
+/*** Primops called from VM and generated C-code ***/
 
 static word prim_connect(word *host, word port) {
    int sock;
@@ -543,7 +585,7 @@ static word prim_cast(word *ob, int type) {
       word *new, *res; /* <- could also write directly using *fp++ */
       allocate(size, new);
       res = new;
