Index: gtkplug.c
===================================================================
--- gtkplug.c	(revision 21917)
+++ gtkplug.c	(working copy)
@@ -40,6 +40,10 @@
 						       guint        prop_id,
 						       GValue      *value,
 						       GParamSpec  *pspec);
+static void            gtk_plug_set_property          (GObject          *object,
+													   guint            prop_id,
+													   const GValue     *value,
+													   GParamSpec * pspec);													   
 static void            gtk_plug_finalize              (GObject          *object);
 static void            gtk_plug_realize               (GtkWidget        *widget);
 static void            gtk_plug_unrealize             (GtkWidget        *widget);
@@ -83,7 +87,26 @@
 
 G_DEFINE_TYPE (GtkPlug, gtk_plug, GTK_TYPE_WINDOW)
 
+
 static void
+gtk_plug_set_property (GObject *object,
+					   guint prop_id,
+					   const GValue *value,
+					   GParamSpec * pspec)
+{
+  GtkPlug *plug = GTK_PLUG(object);
+  switch (prop_id)
+	{
+	case PROP_SOCKET_WINDOW:
+	  plug->socket_window = g_value_get_object(value);
+	  break;
+	default:
+	  G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+	  break;
+	}
+}
+
+static void
 gtk_plug_get_property (GObject    *object,
 		       guint       prop_id,
 		       GValue     *value,
@@ -116,6 +139,7 @@
   bin_class = g_type_class_peek (GTK_TYPE_BIN);
 
   gobject_class->get_property = gtk_plug_get_property;
+  gobject_class->set_property = gtk_plug_set_property;
   gobject_class->finalize = gtk_plug_finalize;
   
   widget_class->realize = gtk_plug_realize;
@@ -165,7 +189,8 @@
 							P_("Socket Window"),
 							P_("The window of the socket the plug is embedded in"),
 							GDK_TYPE_WINDOW,
-							GTK_PARAM_READABLE));
+							GTK_PARAM_READABLE | GTK_PARAM_WRITABLE |
+						    G_PARAM_CONSTRUCT_ONLY));
 
   /**
    * GtkPlug::embedded:
