--- glib-2.10.1.orig/gobject/glib-genmarshal.c	2005-11-28 21:33:53.000000000 +0100
+++ glib-2.10.1/gobject/glib-genmarshal.c	2006-09-24 21:46:30.000000000 +0200
@@ -371,10 +371,16 @@ generate_marshal (const gchar *signame,
       g_fprintf (fout, "void\n");
       ind = g_fprintf (fout, "%s_%s (", marshaller_prefix, signame);
       g_fprintf (fout,   "GClosure     *closure,\n");
-      g_fprintf (fout, "%sGValue       *return_value,\n", indent (ind));
+      if (sig->rarg->setter)
+        g_fprintf (fout, "%sGValue       *return_value,\n",
+                   indent (ind));
+      else
+         g_fprintf (fout, "%sG_GNUC_UNUSED GValue *return_value,\n",
+                    indent (ind));
       g_fprintf (fout, "%sguint         n_param_values,\n", indent (ind));
       g_fprintf (fout, "%sconst GValue *param_values,\n", indent (ind));
-      g_fprintf (fout, "%sgpointer      invocation_hint,\n", indent (ind));
+      g_fprintf (fout, "%sG_GNUC_UNUSED gpointer invocation_hint,\n",
+                 indent (ind));
       g_fprintf (fout, "%sgpointer      marshal_data)\n", indent (ind));
       g_fprintf (fout, "{\n");
 
