Index: docs/reference/gobject/tmpl/objects.sgml
===================================================================
--- docs/reference/gobject/tmpl/objects.sgml	(revision 5439)
+++ docs/reference/gobject/tmpl/objects.sgml	(working copy)
@@ -156,6 +156,13 @@
   of properties. Overriding @dispatch_properties_changed should be rarely 
   needed.
 @notify: the class closure for the notify signal
+@constructed: the @constructed function is called by g_object_new() as the
+  final step of the object creation process.  At the point of the call, all
+  construction properties have been set on the object.  The purpose of this
+  call is to allow for object initialisation steps that can only be performed
+  after construction properties have been set.  @constructed implementors
+  should chain up to the @constructed call of their parent class to allow it
+  to complete its initialisation.
 
 <!-- ##### STRUCT GObjectConstructParam ##### -->
 <para>
Index: gobject/gobject.c
===================================================================
--- gobject/gobject.c	(revision 5439)
+++ gobject/gobject.c	(working copy)
@@ -958,6 +958,11 @@
   /* release our own freeze count and handle notifications */
   if (newly_constructed || n_oparams)
     g_object_notify_queue_thaw (object, nqueue);
+
+  /* run 'constructed' handler if there is one */
+  if (class->constructed != NULL)
+    class->constructed (object);
+
   if (unref_class)
     g_type_class_unref (unref_class);
 
Index: gobject/gobject.h
===================================================================
--- gobject/gobject.h	(revision 5439)
+++ gobject/gobject.h	(working copy)
@@ -110,9 +110,13 @@
   /* signals */
   void	     (*notify)			(GObject	*object,
 					 GParamSpec	*pspec);
+
+  /* called when done constructing */
+  void	     (*constructed)		(GObject	*object);
+
   /*< private >*/
   /* padding */
-  gpointer	pdummy[8];
+  gpointer	pdummy[7];
 };
 struct _GObjectConstructParam
 {
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 5439)
+++ ChangeLog	(working copy)
@@ -1,3 +1,10 @@
+2007-04-02  Ryan Lortie  <desrt@desrt.ca>
+
+	* gobject/gobject.h: Add 'constructed' vcall to GObjectClass.
+	* gobject/gobject.c (g_object_newv): call ->constructed() as last
+	step of object construction.
+	* docs/reference/gobject/tmpl/objects.sgml: Document ->constructed().
+
 2007-03-27  Emmanuele Bassi  <ebassi@gnome.org>
 
 	* glib/gdate.h: Remove old comment and forward declaration of
