diff --git a/src/gdbus-codegen.c b/src/gdbus-codegen.c
index 340d0c9..14d3a38 100644
--- a/src/gdbus-codegen.c
+++ b/src/gdbus-codegen.c
@@ -1072,8 +1072,8 @@ app_generate_introspection_for_args (App           *app,
       g_string_append_printf (str,
                               "{\n"
                               "  -1,\n"
-                              "  \"%s\",\n"
-                              "  \"%s\",\n"
+                              "  (gchar *) \"%s\",\n"
+                              "  (gchar *) \"%s\",\n"
                               /* TODO: also include annotation data */
                               "  (GDBusAnnotationInfo **) NULL,\n"
                               "};\n",
@@ -1317,7 +1317,7 @@ app_write_signal_emission_helper (App                 *app,
                               i_typename);
       for (n = 0; s->args != NULL && s->args[n] != NULL; n++)
         {
-          g_string_append_printf (str, " * @%s: Signal parameter.\n", s->args[n]->name);
+          g_string_append_printf (str, " * @arg_%s: Signal parameter.\n", s->args[n]->name);
         }
       g_string_append_printf (str,
                               " *\n"
@@ -1339,7 +1339,7 @@ app_write_signal_emission_helper (App                 *app,
       g_string_append (str,
                        ",\n");
       for (n = 0; s->args[n] != NULL; n++)
-        app_append_arg_to_param_list (app, str, "", s->args[n], ARG_FLAGS_CONST, s->args[n+1] != NULL);
+        app_append_arg_to_param_list (app, str, "arg_", s->args[n], ARG_FLAGS_CONST, s->args[n+1] != NULL);
     }
 
   g_string_append_printf (str,
@@ -1358,7 +1358,7 @@ app_write_signal_emission_helper (App                 *app,
                               "  g_signal_emit (object, signals[__%s_SIGNAL], 0",
                               ei->name_upper);
       for (n = 0; s->args != NULL && s->args[n] != NULL; n++)
-        g_string_append_printf (str, ", %s", s->args[n]->name);
+        g_string_append_printf (str, ", arg_%s", s->args[n]->name);
       g_string_append (str, ");\n");
       g_string_append_printf (str,
                               "}\n"
@@ -1399,7 +1399,7 @@ app_write_method_completion_helper (App                 *app,
                               i_typename);
       for (n = 0; m->out_args != NULL && m->out_args[n] != NULL; n++)
         {
-          g_string_append_printf (str, " * @%s: Value to return.\n", m->out_args[n]->name);
+          g_string_append_printf (str, " * @out_%s: Value to return.\n", m->out_args[n]->name);
         }
       g_string_append_printf (str,
                               " *\n"
@@ -1427,7 +1427,7 @@ app_write_method_completion_helper (App                 *app,
       g_string_append (str,
                        ",\n");
       for (n = 0; m->out_args[n] != NULL; n++)
-        app_append_arg_to_param_list (app, str, "", m->out_args[n], ARG_FLAGS_CONST, m->out_args[n+1] != NULL);
+        app_append_arg_to_param_list (app, str, "out_", m->out_args[n], ARG_FLAGS_CONST, m->out_args[n+1] != NULL);
     }
 
   g_string_append_printf (str,
@@ -1447,7 +1447,7 @@ app_write_method_completion_helper (App                 *app,
         {
           g_string_append (str,
                            "  GVariant *_params;\n");
-          app_append_args_to_source (app, str, "", m->out_args, TRUE);
+          app_append_args_to_source (app, str, "out_", m->out_args, TRUE);
           g_string_append_printf (str,
                                   "  g_dbus_method_invocation_return_value (invocation, _params);\n");
         }
@@ -1494,7 +1494,7 @@ app_write_method (App                 *app,
                               i_typename);
       for (n = 0; m->in_args != NULL && m->in_args[n] != NULL; n++)
         {
-          g_string_append_printf (str, " * @%s: Method parameter.\n", m->in_args[n]->name);
+          g_string_append_printf (str, " * @in_%s: Method parameter.\n", m->in_args[n]->name);
         }
       g_string_append_printf (str,
                               " * @cancellable: A #GCancellable or %%NULL.\n"
@@ -1523,7 +1523,7 @@ app_write_method (App                 *app,
                           i_typename);
 
   for (n = 0; m->in_args != NULL && m->in_args[n] != NULL; n++)
-    app_append_arg_to_param_list (app, str, "", m->in_args[n], ARG_FLAGS_CONST, TRUE);
+    app_append_arg_to_param_list (app, str, "in_", m->in_args[n], ARG_FLAGS_CONST, TRUE);
 
   g_string_append_printf (str,
                           "        GCancellable *cancellable,\n"
@@ -1541,7 +1541,7 @@ app_write_method (App                 *app,
                        "\n"
                        "{\n"
                        "  GVariant *_params;\n");
-      app_append_args_to_source (app, str, "", m->in_args, TRUE);
+      app_append_args_to_source (app, str, "in_", m->in_args, TRUE);
       g_string_append_printf (str,
                               "  g_dbus_proxy_call (G_DBUS_PROXY (proxy),\n"
                               "                     \"%s\",\n"
@@ -1636,7 +1636,7 @@ app_write_method (App                 *app,
                               i_typename);
       for (n = 0; m->in_args != NULL && m->in_args[n] != NULL; n++)
         {
-          g_string_append_printf (str, " * @%s: Method parameter.\n", m->in_args[n]->name);
+          g_string_append_printf (str, " * @in_%s: Method parameter.\n", m->in_args[n]->name);
         }
       for (n = 0; m->out_args != NULL && m->out_args[n] != NULL; n++)
         {
@@ -1669,7 +1669,7 @@ app_write_method (App                 *app,
                           ei->name_lower,
                           i_typename);
   for (n = 0; m->in_args != NULL && m->in_args[n] != NULL; n++)
-    app_append_arg_to_param_list (app, str, "", m->in_args[n], ARG_FLAGS_CONST, TRUE);
+    app_append_arg_to_param_list (app, str, "in_", m->in_args[n], ARG_FLAGS_CONST, TRUE);
 
   for (n = 0; m->out_args != NULL && m->out_args[n] != NULL; n++)
     app_append_arg_to_param_list (app, str, "out_", m->out_args[n], ARG_FLAGS_OUT, TRUE);
@@ -1691,7 +1691,7 @@ app_write_method (App                 *app,
                        "  gboolean _ret = FALSE;\n"
                        "  GVariant *_params;\n"
                        "  GVariant *_result;\n");
-      app_append_args_to_source (app, str, "", m->in_args, TRUE);
+      app_append_args_to_source (app, str, "in_", m->in_args, TRUE);
       g_string_append_printf (str,
                               "  _result = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),\n"
                               "                                   \"%s\",\n"
@@ -1752,7 +1752,7 @@ app_write_server_method (App                 *app,
       g_string_append_printf (str,
                               ",\n");
       for (n = 0; m->in_args[n] != NULL; n++)
-        app_append_arg_to_param_list (app, str, "", m->in_args[n], ARG_FLAGS_CONST, n < ei->num_in_args - 1);
+        app_append_arg_to_param_list (app, str, "in_", m->in_args[n], ARG_FLAGS_CONST, n < ei->num_in_args - 1);
     }
 
   g_string_append_printf (str,
@@ -1793,7 +1793,7 @@ app_write_signal_handler (App                 *app,
     {
       g_string_append (str, ",\n");
       for (n = 0; s->args[n] != NULL; n++)
-        app_append_arg_to_param_list (app, str, "", s->args[n], ARG_FLAGS_CONST, s->args[n+1] != NULL);
+        app_append_arg_to_param_list (app, str, "arg_", s->args[n], ARG_FLAGS_CONST, s->args[n+1] != NULL);
     }
 
   g_string_append_printf (str,
@@ -3802,35 +3802,35 @@ app_write_interface (App                 *app,
     {
       ExtendedMethodInfo *ei = extended_method_info_get (app, i, i->methods[n]);
       g_string_append_printf (c,
-                              "  g_hash_table_insert (_method_name_to_id, \"%s\", GUINT_TO_POINTER (__%s_METHOD));\n",
+                              "  g_hash_table_insert (_method_name_to_id, (gpointer) \"%s\", GUINT_TO_POINTER (__%s_METHOD));\n",
                               i->methods[n]->name, ei->name_upper);
     }
   for (n = 0; i->signals != NULL && i->signals[n] != NULL; n++)
     {
       ExtendedSignalInfo *ei = extended_signal_info_get (app, i, i->signals[n]);
       g_string_append_printf (c,
-                              "  g_hash_table_insert (_signal_name_to_id, \"%s\", GUINT_TO_POINTER (__%s_SIGNAL));\n",
+                              "  g_hash_table_insert (_signal_name_to_id, (gpointer) \"%s\", GUINT_TO_POINTER (__%s_SIGNAL));\n",
                               i->signals[n]->name, ei->name_upper);
     }
   for (n = 0; i->properties != NULL && i->properties[n] != NULL; n++)
     {
       ExtendedPropertyInfo *ei = extended_property_info_get (app, i, i->properties[n]);
       g_string_append_printf (c,
-                              "  g_hash_table_insert (_property_name_to_id, \"%s\", GUINT_TO_POINTER (PROP_%s));\n",
+                              "  g_hash_table_insert (_property_name_to_id, (gpointer) \"%s\", GUINT_TO_POINTER (PROP_%s));\n",
                               i->properties[n]->name, ei->name_upper);
     }
   for (n = 0; i->properties != NULL && i->properties[n] != NULL; n++)
     {
       ExtendedPropertyInfo *ei = extended_property_info_get (app, i, i->properties[n]);
       g_string_append_printf (c,
-                              "  g_hash_table_insert (_property_gname_to_name, \"%s\", \"%s\");\n",
+                              "  g_hash_table_insert (_property_gname_to_name, (gpointer) \"%s\", (gpointer) \"%s\");\n",
                               ei->name_hyphen, i->properties[n]->name);
     }
   for (n = 0; i->properties != NULL && i->properties[n] != NULL; n++)
     {
       ExtendedPropertyInfo *ei = extended_property_info_get (app, i, i->properties[n]);
       g_string_append_printf (c,
-                              "  g_hash_table_insert (_property_name_to_gname, \"%s\", \"%s\");\n",
+                              "  g_hash_table_insert (_property_name_to_gname, (gpointer) \"%s\", (gpointer) \"%s\");\n",
                               i->properties[n]->name, ei->name_hyphen);
     }
   /* Register GObject signals with interface type - first we do it for the D-Bus signals */
@@ -3904,7 +3904,7 @@ app_write_interface (App                 *app,
                               "  g_signal_add_emission_hook (signals[__%s_SIGNAL],\n"
                               "                              0,\n"
                               "                              signal_emission_hook_cb_%s,\n"
-                              "                              \"%s\",\n"
+                              "                              (gpointer) \"%s\",\n"
                               "                              NULL);\n"
                               "\n",
                               ei->name_upper,
@@ -4229,8 +4229,8 @@ app_write_interface (App                 *app,
                                   "static const GDBusPropertyInfo %s_property_%s =\n"
                                   "{\n"
                                   "  -1,\n"
-                                  "  \"%s\",\n"
-                                  "  \"%s\",\n"
+                                  "  (gchar *) \"%s\",\n"
+                                  "  (gchar *) \"%s\",\n"
                                   "  %s,\n",
                                   typename_lower,
                                   p->name,
@@ -4279,7 +4279,7 @@ app_write_interface (App                 *app,
                                   "static const GDBusSignalInfo %s_signal_%s =\n"
                                   "{\n"
                                   "  -1,\n"
-                                  "  \"%s\",\n",
+                                  "  (gchar *) \"%s\",\n",
                                   typename_lower,
                                   i->signals[n]->name,
                                   i->signals[n]->name);
@@ -4336,7 +4336,7 @@ app_write_interface (App                 *app,
                                   "static const GDBusMethodInfo %s_method_%s =\n"
                                   "{\n"
                                   "  -1,\n"
-                                  "  \"%s\",\n",
+                                  "  (gchar *) \"%s\",\n",
                                   typename_lower,
                                   i->methods[n]->name,
                                   i->methods[n]->name);
@@ -4381,7 +4381,7 @@ app_write_interface (App                 *app,
                           "static const GDBusInterfaceInfo _%s_interface_info =\n"
                           "{\n"
                           "  -1,\n"
-                          "  \"%s\",\n",
+                          "  (gchar *) \"%s\",\n",
                           typename_lower,
                           i->name);
   if (i->methods != NULL)
@@ -4982,7 +4982,7 @@ app_write_interface (App                 *app,
                               "  if (value != NULL)\n"
                               "    {\n"
                               "      g_variant_ref_sink (value);\n"
-                              "      g_hash_table_insert (pvc, \"%s\", value);\n"
+                              "      g_hash_table_insert (pvc, (gpointer) \"%s\", value);\n"
                               "    }\n",
                               i->name, p->name,
                               p->name);
