diff --git a/go/expressions.cc b/go/expressions.cc
index 5689c77..d6d27ee 100644
--- a/go/expressions.cc
+++ b/go/expressions.cc
@@ -962,7 +962,7 @@
   Location loc = this->location();
   Gogo* gogo = context->gogo();
   Bvariable* bvar = this->statement_->get_backend_variable(context);
-  Bexpression* lvar_ref = gogo->backend()->var_expression(bvar, VE_rvalue, loc);
+  Bexpression* lvar_ref = gogo->backend()->var_expression(bvar, VE_lvalue, loc);
 
   Named_object* fn = context->function();
   go_assert(fn != NULL);
@@ -970,7 +970,7 @@
   Bexpression* bexpr = this->expr_->get_backend(context);
   Bstatement* set = gogo->backend()->assignment_statement(bfn, lvar_ref,
                                                           bexpr, loc);
-  Bexpression* var_ref = gogo->backend()->var_expression(bvar, VE_lvalue, loc);
+  Bexpression* var_ref = gogo->backend()->var_expression(bvar, VE_rvalue, loc);
   Bexpression* ret = gogo->backend()->compound_expression(set, var_ref, loc);
   return ret;
 }
diff --git a/go/statements.cc b/go/statements.cc
index ae3873e..7a448d7 100644
--- a/go/statements.cc
+++ b/go/statements.cc
@@ -912,6 +912,21 @@
   if (ue && ue->op() == OPERATOR_MULT)
     return TRAVERSE_CONTINUE;
 
+  Type_conversion_expression* ce = e->conversion_expression();
+  if (ce)
+    return TRAVERSE_CONTINUE;
+
+  Temporary_reference_expression* tre =
+      e->temporary_reference_expression();
+  if (tre)
+    {
+      tre = new Temporary_reference_expression(tre->statement(),
+                                               tre->location());
+      *ppexpr = tre;
+      tre->set_is_lvalue();
+      return TRAVERSE_EXIT;
+    }
+
   return TRAVERSE_EXIT;
 }
 
