Index: src/InitTweak/FixInit.cc
===================================================================
--- src/InitTweak/FixInit.cc	(revision 7543dec19ee64352219016da00841a81f108814c)
+++ src/InitTweak/FixInit.cc	(revision 96fc67b1d78be4a46077b51a6bbc0f0547cbf5f5)
@@ -676,5 +676,10 @@
 			// the original code contains uses of objDecl - replace them with the newly generated 'this' parameter.
 			ObjectDecl * thisParam = getParamThis( dtorFunc->type );
-			VarExprReplacer::replace( dtor, { std::make_pair( objDecl, new VariableExpr( thisParam ) ) } );
+			Expression * replacement = new VariableExpr( thisParam );
+			if ( ArrayType * at = dynamic_cast< ArrayType * >( replacement->result->stripReferences() ) ) {
+				// need to cast away reference for array types, since the destructor is generated without the reference type
+				replacement = new CastExpr( replacement, at->clone() );
+			}
+			VarExprReplacer::replace( dtor, { std::make_pair( objDecl, replacement ) } );
 			dtorFunc->statements->push_back( dtor );
 
