diff --git a/src/compiler/objective_c_generator.cc b/src/compiler/objective_c_generator.cc
index 08b321152d3fdf6cc3c44988e0940045c59b620d..7d674c5106a07b2961997a831aa89fec94ff9ad2 100644
--- a/src/compiler/objective_c_generator.cc
+++ b/src/compiler/objective_c_generator.cc
@@ -100,14 +100,14 @@ void PrintAdvancedSignature(Printer *printer,
   PrintMethodSignature(printer, method, vars);
 }
 
-inline map<string, string> GetMethodVars(const MethodDescriptor *method) {
+inline map<string, string>&& GetMethodVars(const MethodDescriptor *method) {
   map<string,string> res;
   res["method_name"] = method->name();
   res["request_type"] = method->input_type()->name();
   res["response_type"] = method->output_type()->name();
   res["request_class"] = ClassName(method->input_type());
   res["response_class"] = ClassName(method->output_type());
-  return res;
+  return std::forward<map<string,string>>(res);
 }
 
 void PrintMethodDeclarations(Printer *printer,