diff --git a/modcc/module.cpp b/modcc/module.cpp
index 02db401871036e0fd288df78ce2c0755ad59390b..aa8b33ae5e95b785b7398ac62b3c3aedba0bc4e6 100644
--- a/modcc/module.cpp
+++ b/modcc/module.cpp
@@ -218,7 +218,8 @@ bool Module::semantic() {
         symbols_["initial"] = make_symbol<ProcedureExpression>(
                 Location(), "initial",
                 std::vector<expression_ptr>(),
-                make_expression<BlockExpression>(Location(), expr_list_type(), false)
+                make_expression<BlockExpression>(Location(), expr_list_type(), false),
+                procedureKind::initial
         );
     }
     auto initial_api = make_empty_api_method("nrn_init", "initial");
diff --git a/modcc/simd_printer.hpp b/modcc/simd_printer.hpp
index fa5c768d0bc4ae6836fda88f31c996f82a60fd83..caca3853064c0813aaf38d59115df41a29a6034c 100644
--- a/modcc/simd_printer.hpp
+++ b/modcc/simd_printer.hpp
@@ -498,8 +498,10 @@ void SimdPrinter<Arch>::visit(AssignmentExpression *e) {
                                            });
     }
     else {
-        // that's an ordinary assignment; use base printer
-        CPrinter::visit(e);
+        // that's an ordinary assignment
+        lhs->accept(this);
+        text_ << " = ";
+        rhs->accept(this);
     }
 }