diff -ru a/tools/magpie/magpie/templates/okl/client.template.c b/tools/magpie/magpie/templates/okl/client.template.c --- a/tools/magpie/magpie/templates/okl/client.template.c 2008-07-22 14:41:50.000000000 +0530 +++ b/tools/magpie/magpie/templates/okl/client.template.c 2008-07-05 16:07:27.000000000 +0530 @@ -133,6 +133,11 @@ /*-if function.has_varlength_params_in()*/ byte *mr_varptr = mr; /* Variable-length param buffer pointer */\n /*fi-*/ +/*-if not function.has_varlength_params_in()*/ + /*-if function.has_varlength_params_out()*/ + byte *mr_varptr = mr; /* Variable-length param buffer pointer */\n + /*fi-*/ +/*fi-*/ /* pre_ipc_defs */\n L4_Word_t _asynch_mask;\n \n diff -ru a/tools/magpie/magpie/templates/okl/service_headers.template.h b/tools/magpie/magpie/templates/okl/service_headers.template.h --- a/tools/magpie/magpie/templates/okl/service_headers.template.h 2008-07-22 14:41:50.000000000 +0530 +++ b/tools/magpie/magpie/templates/okl/service_headers.template.h 2008-07-05 16:31:27.000000000 +0530 @@ -80,12 +80,15 @@ /*-?function.get_return_type()-*/ /*-?function_implementation_name-*/(/*-?func_signature-*/);\n \n /* Reply-only function, for callbacks. */\n -static inline void /*-?function.get_name()-*/_reply(CORBA_Object _client/*LOOP function.get_params_out()*/, /*-?LOOPITEM['typename']-*/ /*-?LOOPITEM['indirection']-*/ /*-?LOOPITEM['c_impl_indirection']-*/ /*-?LOOPITEM['name']-*//*ENDLOOP*/ /*-if function.get_return_type() != 'void'*/, /*-?function.get_return_type()-*/ __return /*fi-*/); +static inline void /*-?function.get_name()-*/_reply(CORBA_Object _client/*LOOP function.get_params_out()*/, /*-?LOOPITEM.c_typename-*/ /*-?LOOPITEM['name']-*//*ENDLOOP*/ /*-if function.get_return_type() != 'void'*/, /*-?function.get_return_type()-*/ __return /*fi-*/);\n static inline void\n /*-?function.get_name()-*/_reply(CORBA_Object _client/*LOOP function.get_params_out()*/, /*-?LOOPITEM.c_typename-*/ /*-?LOOPITEM['name']-*//*ENDLOOP*/ /*-if function.get_return_type() != 'void'*/, /*-?function.get_return_type()-*/ __return /*fi-*/)\n {\n byte *mr = (void *)L4_MRStart();\n +/*-if function.has_varlength_params_out()*/ + byte *mr_varptr = mr; +/*fi-*/ /* Marshal */\n /*LOOP cmd, args = function.marshal('out', startword = 1)*/ /*-run(templates.get(cmd), args = args)-*/ diff -ru a/tools/magpie/magpie/templates/okl/service.template.c b/tools/magpie/magpie/templates/okl/service.template.c --- a/tools/magpie/magpie/templates/okl/service.template.c 2008-07-22 14:41:50.000000000 +0530 +++ b/tools/magpie/magpie/templates/okl/service.template.c 2008-07-05 16:07:02.000000000 +0530 @@ -130,6 +130,11 @@ /*-if function.has_varlength_params_in()*/ byte *mr_varptr = mr; /* Variable-length param buffer pointer */\n /*fi-*/ +/*-if not function.has_varlength_params_in()*/ + /*-if function.has_varlength_params_out()*/ + byte *mr_varptr = mr; /* Variable-length param buffer pointer */\n + /*fi-*/ +/*fi-*/ env._action = 0;\n \n /* Unmarshal */\n