if(proc) {
                nodreg(®, types[TINT64], D_AX);
-               gins(ALEAQ, f, ®);
-               gins(APUSHQ, ®, N);
+               if(f->op != OREGISTER) {
+                       gins(ALEAQ, f, ®);
+                       gins(APUSHQ, ®, N);
+               } else
+                       gins(APUSHQ, f, N);
                nodconst(&con, types[TINT32], argsize(f->type));
                gins(APUSHQ, &con, N);
                gins(ACALL, N, newproc);
        nodo.xoffset = n->left->xoffset + 4*widthptr;
        cgen(&nodo, &nodr);     // REG = 32+offset(REG) -- i.m->fun[f]
 
+       // BOTCH nodr.type = fntype;
        ginscall(&nodr, proc);
 
        regfree(&nodr);
        if(n->left->ullman >= UINF) {
                regalloc(&nod, types[tptr], N);
                cgen_as(&nod, &afun, 0);
+               nod.type = t;
                ginscall(&nod, proc);
                regfree(&nod);
                goto ret;
        if(isptr[n->left->type->etype]) {
                regalloc(&nod, types[tptr], N);
                cgen_as(&nod, n->left, 0);
+               nod.type = t;
                ginscall(&nod, proc);
                regfree(&nod);
                goto ret;
 
 
        n = s->oname;
        if(n == N || n->type == T) {
-               yyerror("variable exported but not defined: %S\n", s);
+               yyerror("variable exported but not defined: %S", s);
                return;
        }
 
 
        t = s->otype;
        if(t == T) {
-               yyerror("type exported but not defined: %S\n", s);
+               yyerror("type exported but not defined: %S", s);
                return;
        }
 
 {
        switch(s->lexical) {
        default:
-               yyerror("unknown export symbol: %S\n", s, s->lexical);
+               yyerror("unknown export symbol: %S", s, s->lexical);
                break;
        case LPACK:
-               yyerror("package export symbol: %S\n", s);
+               yyerror("package export symbol: %S", s);
                break;
        case LATYPE:
        case LBASETYPE: