diff --git a/src/e2ir.c b/src/e2ir.c
index 72612dc..ce164f1 100644
--- a/src/e2ir.c
+++ b/src/e2ir.c
@@ -2794,7 +2794,7 @@ elem *AssignExp::toElem(IRState *irs)
 #if DMDV2
     /* Look for reference initializations
      */
-    if (op == TOKconstruct && e1->op == TOKvar)
+    if ((op == TOKassign || op == TOKconstruct) && e1->op == TOKvar)
     {
         VarExp *ve = (VarExp *)e1;
         Declaration *s = ve->var;
diff --git a/src/inline.c b/src/inline.c
index 3b17f13..a30798b 100644
--- a/src/inline.c
+++ b/src/inline.c
@@ -1259,7 +1259,7 @@ int FuncDeclaration::canInline(int hasthis, int hdrscan)
     InlineCostState ics;
     int cost;
 
-#define CANINLINE_LOG 0
+#define CANINLINE_LOG 1
 
 #if CANINLINE_LOG
     printf("FuncDeclaration::canInline(hasthis = %d, '%s')\n", hasthis, toChars());
@@ -1349,7 +1349,7 @@ int FuncDeclaration::canInline(int hasthis, int hdrscan)
         for (int i = 0; i < parameters->dim; i++)
         {
             VarDeclaration *v = (VarDeclaration *)parameters->data[i];
-            if (v->isOut() || v->isRef() || v->type->toBasetype()->ty == Tsarray)
+            if (v->isOut() || /*v->isRef() ||*/ v->type->toBasetype()->ty == Tsarray)
                 goto Lno;
         }
     }
@@ -1462,29 +1462,28 @@ Expression *FuncDeclaration::doInline(InlineScanState *iss, Expression *ethis, A
         for (int i = 0; i < arguments->dim; i++)
         {
             VarDeclaration *vfrom = (VarDeclaration *)parameters->data[i];
-            VarDeclaration *vto;
             Expression *arg = (Expression *)arguments->data[i];
-            ExpInitializer *ei;
-            VarExp *ve;
+fprintf(stderr, "arg: "); arg->print();
 
-            ei = new ExpInitializer(arg->loc, arg);
+            ExpInitializer *ei = new ExpInitializer(arg->loc, arg);
 
-            vto = new VarDeclaration(vfrom->loc, vfrom->type, vfrom->ident, ei);
+            VarDeclaration *vto = new VarDeclaration(vfrom->loc, vfrom->type, vfrom->ident, ei);
             vto->storage_class |= vfrom->storage_class & (STCin | STCout | STClazy | STCref);
             vto->linkage = vfrom->linkage;
             vto->parent = iss->fd;
-            //printf("vto = '%s', vto->storage_class = x%x\n", vto->toChars(), vto->storage_class);
-            //printf("vto->parent = '%s'\n", iss->fd->toChars());
+            printf("vfrom = '%s', vfrom->storage_class = 0x%llx\n", vfrom->toChars(), vfrom->storage_class);
+            printf("vto = '%s', vto->storage_class = 0x%llx\n", vto->toChars(), vto->storage_class);
+            printf("vto->parent = '%s'\n", iss->fd->toChars());
 
-            ve = new VarExp(vto->loc, vto);
+            VarExp *ve = new VarExp(vto->loc, vto);
             //ve->type = vto->type;
             ve->type = arg->type;
 
             ei->exp = new AssignExp(vto->loc, ve, arg);
             ei->exp->type = ve->type;
-//ve->type->print();
-//arg->type->print();
-//ei->exp->print();
+fprintf(stderr, "ve->type: "); ve->type->print();
+fprintf(stderr, "arg->type: "); arg->type->print();
+fprintf(stderr, "ei->exp->type: "); ei->exp->print();
 
             ids.from.push(vfrom);
             ids.to.push(vto);
@@ -1493,15 +1492,16 @@ Expression *FuncDeclaration::doInline(InlineScanState *iss, Expression *ethis, A
             de->type = Type::tvoid;
 
             e = Expression::combine(e, de);
+fprintf(stderr, "e: "); e->print();
         }
     }
 
     inlineNest++;
     Expression *eb = fbody->doInline(&ids);
     inlineNest--;
-//eb->type->print();
-//eb->print();
-//eb->dump(0);
+eb->type->print();
+eb->print();
+eb->dump(0);
     return Expression::combine(e, eb);
 }
 
diff --git a/src/linux.mak b/src/linux.mak
index c6409b7..1079381 100644
--- a/src/linux.mak
+++ b/src/linux.mak
@@ -10,8 +10,8 @@ CC=g++ -m32
 
 #COV=-fprofile-arcs -ftest-coverage
 
-#GFLAGS = -Werror -Wno-deprecated -D__near= -D__pascal= -fno-exceptions -g -DDEBUG=1 -DUNITTEST $(COV)
-GFLAGS = -Werror -Wno-deprecated -D__near= -D__pascal= -fno-exceptions -O2
+GFLAGS = -Werror -Wno-deprecated -D__near= -D__pascal= -fno-exceptions -g -DDEBUG=1 -DUNITTEST $(COV)
+#GFLAGS = -Werror -Wno-deprecated -D__near= -D__pascal= -fno-exceptions -O2
 
 CFLAGS = $(GFLAGS) -I$(ROOT) -D__I86__=1 -DMARS=1 -DTARGET_LINUX=1 -D_DH
 MFLAGS = $(GFLAGS) -I$C -I$(TK) -D__I86__=1 -DMARS=1 -DTARGET_LINUX=1 -D_DH
diff --git a/src/s2ir.c b/src/s2ir.c
index 4dcc3fb..803bfad 100644
--- a/src/s2ir.c
+++ b/src/s2ir.c
@@ -1283,10 +1283,14 @@ void ExpStatement::toIR(IRState *irs)
 {
     Blockx *blx = irs->blx;
 
-    //printf("ExpStatement::toIR(), exp = %s\n", exp ? exp->toChars() : "");
+    printf("ExpStatement::toIR(), exp = %s\n", exp ? exp->toChars() : "");
     incUsage(irs, loc);
     if (exp)
-        block_appendexp(blx->curblock,exp->toElem(irs));
+    {
+        elem * e = exp->toElem(irs);
+        elem_print(e);
+        block_appendexp(blx->curblock,e);
+    }
 }
 
 /**************************************
diff --git a/src/toobj.c b/src/toobj.c
index 1fe2852..1728a38 100644
--- a/src/toobj.c
+++ b/src/toobj.c
@@ -1160,8 +1160,8 @@ void VarDeclaration::toObjFile(int multiobj)
     unsigned sz;
     Dsymbol *parent;
 
-    //printf("VarDeclaration::toObjFile(%p '%s' type=%s) protection %d\n", this, toChars(), type->toChars(), protection);
-    //printf("\talign = %d\n", type->alignsize());
+    printf("VarDeclaration::toObjFile(%p '%s' type=%s) protection %d\n", this, toChars(), type->toChars(), protection);
+    printf("\talign = %d\n", type->alignsize());
 
     if (aliassym)
     {   toAlias()->toObjFile(0);
