diff --git a/compiler2/ttcn3/AST_ttcn3.cc b/compiler2/ttcn3/AST_ttcn3.cc
index 16857bf8d17f54ac2d6601a3eb880a00adb507d7..ff46e56eec21a13706c0990958a2efeb443ce3d5 100644
--- a/compiler2/ttcn3/AST_ttcn3.cc
+++ b/compiler2/ttcn3/AST_ttcn3.cc
@@ -8033,12 +8033,16 @@ namespace Ttcn {
       Free(body);
     }
     else if (in_class && my_scope->get_scope_class()->is_external()) {
+      char* out_par_str = enable_set_bound_out_param ? memptystr() :
+        fp_list->generate_code_set_unbound(memptystr());
       target->source.methods = mputprintf(target->source.methods,
         "%s %s::%s(%s)\n"
-        "{\n\n"
+        "{\n"
+        "%s\n"
         "}\n\n", return_type_str,
         my_scope->get_scope_class()->get_id()->get_name().c_str(),
-        genname_str, formal_par_list);
+        genname_str, formal_par_list, out_par_str);
+      Free(out_par_str);
     }
 
     Free(formal_par_list);
diff --git a/compiler2/ttcn3/Statement.cc b/compiler2/ttcn3/Statement.cc
index 464c0bfd03af696297557ec973422e97eb84d4e9..97fe67a1d5f095f827d3d6bb0ba4c9143a25d220 100644
--- a/compiler2/ttcn3/Statement.cc
+++ b/compiler2/ttcn3/Statement.cc
@@ -6891,7 +6891,7 @@ error:
   {
     expression_struct expr;
     Code::init_expr(&expr);
-    ref_pard->generate_code_const_ref(&expr);
+    ref_pard->generate_code(&expr);
     str=Code::merge_free_expr(str, &expr);
     return str;
   }