--- glib.orig/gobject/gboxed.h	2005-05-01 18:12:19.000000000 +0100
+++ glib/gobject/gboxed.h	2005-07-06 21:57:19.000000000 +0100
@@ -61,6 +61,8 @@
 #define	G_TYPE_VALUE		(g_value_get_type ())
 #define	G_TYPE_VALUE_ARRAY	(g_value_array_get_type ())
 #define	G_TYPE_DATE	        (g_date_get_type ())
+#define	G_TYPE_ERROR	        (g_error_get_type ())
+#define G_TYPE_ERROR_POINTER	(g_error_pointer_get_type ())
 #define	G_TYPE_STRV	        (g_strv_get_type ())
 #define	G_TYPE_GSTRING		(g_gstring_get_type ())
 
@@ -75,11 +77,15 @@
 GType	g_value_get_type	(void)	G_GNUC_CONST;
 GType	g_value_array_get_type	(void)	G_GNUC_CONST;
 GType	g_date_get_type	        (void)	G_GNUC_CONST;
+GType	g_error_get_type	(void)	G_GNUC_CONST;
+GType	g_error_pointer_get_type (void)	G_GNUC_CONST;
 GType	g_strv_get_type	        (void)	G_GNUC_CONST;
 GType	g_gstring_get_type      (void)	G_GNUC_CONST;
 
+typedef GError *GErrorPointer;
+
 typedef gchar** GStrv;
-     
+
 G_END_DECLS
 
 #endif	/* __G_BOXED_H__ */
--- glib.orig/gobject/gboxed.c	2005-05-01 18:12:19.000000000 +0100
+++ glib/gobject/gboxed.c	2005-07-06 21:56:13.000000000 +0100
@@ -117,6 +117,26 @@
   g_string_free (gstring, TRUE);
 }
 
+static GErrorPointer *
+g_error_pointer_copy (const GErrorPointer *errorptr)
+{
+  if (errorptr == NULL)
+    return NULL;
+
+  GErrorPointer *copy = (GErrorPointer *) g_memdup (errorptr, sizeof (GErrorPointer));
+  return copy;
+}
+
+static void
+g_error_pointer_free (GErrorPointer  *errorptr)
+{
+  if (errorptr == NULL)
+    return;
+
+  g_free (errorptr);
+}
+
+
 void
 g_boxed_type_init (void) 
 {
@@ -193,6 +213,30 @@
 }
 
 GType
+g_error_get_type (void)
+{
+  static GType type_id = 0;
+
+  if (!type_id)
+    type_id = g_boxed_type_register_static ("GError",
+					    (GBoxedCopyFunc) g_error_copy,
+					    (GBoxedFreeFunc) g_error_free);
+  return type_id;
+}
+
+GType
+g_error_pointer_get_type (void)
+{
+  static GType type_id = 0;
+
+  if (type_id == 0)
+    type_id = g_boxed_type_register_static ("GErrorPointer",
+					    (GBoxedCopyFunc) g_error_pointer_copy,
+					    (GBoxedFreeFunc) g_error_pointer_free);
+  return type_id;
+}
+
+GType
 g_strv_get_type (void)
 {
   static GType type_id = 0;
