+if(handleNullVMethod)
+{
+struct Expression * compoundExp;
+struct Context * context = PushContext();
+struct __ecereNameSpace__ecere__sys__OldList * declList = MkList();
+struct __ecereNameSpace__ecere__sys__OldList * stmtList = MkList();
+struct TypeName * castTypeName;
+struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
+struct Specifier * spec;
+
+for(spec = typeName->qualifiers ? (*typeName->qualifiers).first : (((void *)0)); spec; spec = spec->next)
+{
+if(spec->type != 5)
+__ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*specs), CopySpecifier(spec));
+}
+if(typeName->declarator->type == 5)
+{
+struct Pointer * p = typeName->declarator->__anon1.pointer.pointer->pointer;
+
+castTypeName = MkTypeName(specs, CopyDeclarator(typeName->declarator->declarator->declarator->declarator));
+while(p)
+{
+struct Pointer * pp;
+
+for(pp = castTypeName->declarator->__anon1.pointer.pointer; pp->pointer; pp = pp->pointer)
+;
+pp->pointer = MkPointer((((void *)0)), (((void *)0)));
+pp->qualifiers = CopyList(p->qualifiers, (void *)(CopySpecifier));
+p = p->pointer;
+}
+}
+else
+castTypeName = MkTypeName(specs, CopyDeclarator(typeName->declarator->declarator->declarator->declarator));
+compoundExp = MkExpExtensionCompound(MkCompoundStmt(declList, stmtList));
+__ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*declList), MkDeclaration(CopyList(typeName->qualifiers, (void *)(CopySpecifier)), MkListOne(MkInitDeclarator(PlugDeclarator(CopyDeclarator(typeName->declarator), MkDeclaratorIdentifier(MkIdentifier("__internal_VirtualMethod"))), (((void *)0))))));
+__ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*stmtList), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier("__internal_VirtualMethod")), '=', expCallExp))));
+__ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*stmtList), MkExpressionStmt(MkListOne(MkExpCondition(MkExpIdentifier(MkIdentifier("__internal_VirtualMethod")), MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("__internal_VirtualMethod")), arguments)), MkExpCast(castTypeName, MkExpConstant("1"))))));
+compoundExp->loc = exp->loc;
+compoundExp->__anon1.compound->__anon1.compound.context = context;
+PopContext(context);
+exp->type = 5;
+exp->__anon1.list = MkListOne(compoundExp);
+}
+else
+{
+exp->__anon1.call.exp = expCallExp;
+exp->__anon1.call.arguments = arguments;