diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c
index 0ab2b53..776fc1c 100644
--- a/gtk/gtkmain.c
+++ b/gtk/gtkmain.c
@@ -2302,12 +2302,12 @@ gtk_quit_invoke_function (GtkQuitFunction *quitf)
     return quitf->function (quitf->data);
   else
     {
-      GtkArg args[1];
+      GParameter args[1];
       gint ret_val = FALSE;
 
       args[0].name = NULL;
-      args[0].type = G_TYPE_BOOLEAN;
-      args[0].d.pointer_data = &ret_val;
+      g_value_init (&args[0].value, G_TYPE_BOOLEAN);
+      g_value_set_boolean (&args[0].value, ret_val);
       ((GtkCallbackMarshal) quitf->marshal) (NULL,
 					     quitf->data,
 					     0, args);
diff --git a/gtk/gtktypeutils.h b/gtk/gtktypeutils.h
index 75711a3..657aa75 100644
--- a/gtk/gtktypeutils.h
+++ b/gtk/gtktypeutils.h
@@ -45,13 +45,12 @@ GType gtk_identifier_get_type (void) G_GNUC_CONST;
 /* here we come with some necessary forward declarations for structures and
  * provide some fundamental function signatures
  */
-typedef struct _GtkArg	       	     GtkArg;
 typedef struct _GtkObject   	     GtkObject; /* object forward declaration */
 typedef gboolean (*GtkFunction)	    (gpointer      data);
 typedef void (*GtkCallbackMarshal)  (GtkObject    *object,
 				     gpointer      data,
 				     guint         n_args,
-				     GtkArg       *args);
+				     GParameter   *args);
 
 /* This used to be defined in gtkitemfactory.h, but moved over here after
  * the complete deprecation of that header
@@ -59,43 +58,6 @@ typedef void (*GtkCallbackMarshal)  (GtkObject    *object,
 typedef gchar * (*GtkTranslateFunc) (const gchar  *path,
 				     gpointer      func_data);
 
-#if defined (GTK_COMPILATION)
-/* GtkArg, used to hold differently typed values */
-struct _GtkArg
-{
-  GType type;
-  gchar *name;
-
-  /* this union only defines the required storage types for
-   * the possibile values, thus there is no gint enum_data field,
-   * because that would just be a mere alias for gint int_data.
-   * use the GTK_VALUE_*() and GTK_RETLOC_*() macros to access
-   * the discrete memebers.
-   */
-  union {
-    /* flat values */
-    gchar char_data;
-    guchar uchar_data;
-    gboolean bool_data;
-    gint int_data;
-    guint uint_data;
-    glong long_data;
-    gulong ulong_data;
-    gfloat float_data;
-    gdouble double_data;
-    gchar *string_data;
-    GtkObject *object_data;
-    gpointer pointer_data;
-
-    /* structured values */
-    struct {
-      GCallback f;
-      gpointer d;
-    } signal_data;
-  } d;
-};
-#endif /* GTK_COMPILATION */
-
 G_END_DECLS
 
 #endif /* __GTK_TYPE_UTILS_H__ */
