Index: examples/book/builder/basic/main.cc
===================================================================
--- examples/book/builder/basic/main.cc	(revision 82)
+++ examples/book/builder/basic/main.cc	(working copy)
@@ -3,14 +3,58 @@
 
 Gtk::Dialog* pDialog = 0;
 
+void on_button3_clicked()
+{
+  std::cout  << "handler3" << std::endl;
+  if(pDialog)
+    pDialog->hide(); //hide() will cause main::run() to end.
+}
+
+void on_button4_clicked()
+{
+  std::cout  << "handler4" << std::endl;
+  if(pDialog)
+    pDialog->hide(); //hide() will cause main::run() to end.
+}
+
+class MySlots : public Glib::SlotsContainer
+{
+private:
+GLIBMM_DECLARE_SLOTS(
+  GLIBMM_SLOT(MySlots::on_button_clicked),
+  GLIBMM_SLOT(on_button3_clicked)
+);
+
 void on_button_clicked()
 {
+  std::cout  << "handler1" << std::endl;
   if(pDialog)
     pDialog->hide(); //hide() will cause main::run() to end.
 }
 
+};
+
+class MySlots2 : public Glib::SlotsContainer
+{
+private:
+  virtual void __init_slots(void)
+  {
+    register_slot("MySlots2::on_button2_clicked", &MySlots2::on_button2_clicked);
+  }
+
+void on_button2_clicked()
+{
+  std::cout  << "handler2" << std::endl;
+  if(pDialog)
+    pDialog->hide(); //hide() will cause main::run() to end.
+}
+
+};
+
 int main (int argc, char **argv)
 {
+  MySlots slots;
+  MySlots2 slots2;
   Gtk::Main kit(argc, argv);
 
   //Load the GtkBuilder file and instantiate its widgets:
@@ -29,19 +73,14 @@
     std::cerr << "BuilderError: " << ex.what() << std::endl;
     return 1;
   }
+  refBuilder->connect_signals(slots);
+  slots2.register_slot(GLIBMM_MAKE_SLOT(on_button4_clicked));
+  refBuilder->connect_signals(slots2);
 
   //Get the GtkBuilder-instantiated Dialog:
   refBuilder->get_widget("DialogBasic", pDialog);
   if(pDialog)
   {
-    //Get the GtkBuilder-instantiated Button, and connect a signal handler:
-    Gtk::Button* pButton = 0;
-    refBuilder->get_widget("quit_button", pButton);
-    if(pButton)
-    {
-      pButton->signal_clicked().connect( sigc::ptr_fun(on_button_clicked) );
-    }
-
     kit.run(*pDialog);
   }
 
Index: examples/book/builder/basic/basic.ui
===================================================================
--- examples/book/builder/basic/basic.ui	(revision 82)
+++ examples/book/builder/basic/basic.ui	(working copy)
@@ -34,9 +34,42 @@
 	      <property name="label">gtk-quit</property>
 	      <property name="use_stock">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      
+	      <signal name="clicked" handler="MySlots::on_button_clicked"/>
 	    </object>
 	  </child>
+	  <child>
+	    <object class="GtkButton" id="quit_button2">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-quit</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <signal name="clicked" handler="MySlots2::on_button2_clicked"/>
+	    </object>
+	  </child>
+	  <child>
+	    <object class="GtkButton" id="quit_button3">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-quit</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <signal name="clicked" handler="on_button3_clicked"/>
+	    </object>
+	  </child>
+	  <child>
+	    <object class="GtkButton" id="quit_button4">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-quit</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <signal name="clicked" handler="on_button4_clicked"/>
+	    </object>
+	  </child>
 	</object>
 	<packing>
 	  <property name="padding">0</property>
Index: examples/book/builder/derived/deriveddialog.cc
===================================================================
--- examples/book/builder/derived/deriveddialog.cc	(revision 82)
+++ examples/book/builder/derived/deriveddialog.cc	(working copy)
@@ -23,12 +23,7 @@
   m_refGlade(refGlade),
   m_pButton(0)
 {
-  //Get the Glade-instantiated Button, and connect a signal handler:
-  m_refGlade->get_widget("quit_button", m_pButton);
-  if(m_pButton)
-  {
-    m_pButton->signal_clicked().connect( sigc::mem_fun(*this, &DerivedDialog::on_button_quit) ); 
-  }
+  m_refGlade->connect_signals(*this);
 }
 
 DerivedDialog::~DerivedDialog()
Index: examples/book/builder/derived/deriveddialog.h
===================================================================
--- examples/book/builder/derived/deriveddialog.h	(revision 82)
+++ examples/book/builder/derived/deriveddialog.h	(working copy)
@@ -22,7 +22,7 @@
 #include <gtkmm.h>
 
 
-class DerivedDialog : public Gtk::Dialog
+class DerivedDialog : public Gtk::Dialog, public Glib::SlotsContainer
 {
 public:
   DerivedDialog(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& refGlade);
@@ -34,6 +34,11 @@
 
   Glib::RefPtr<Gtk::Builder> m_refGlade;
   Gtk::Button* m_pButton;
+
+private:
+GLIBMM_DECLARE_SLOTS(
+  GLIBMM_SLOT(DerivedDialog::on_button_quit)
+);
 };
 
 #endif //GTKMM_EXAMPLE_DERIVED_WINDOW_H
Index: examples/book/builder/derived/basic.ui
===================================================================
--- examples/book/builder/derived/basic.ui	(revision 82)
+++ examples/book/builder/derived/basic.ui	(working copy)
@@ -34,7 +34,7 @@
 	      <property name="label">gtk-quit</property>
 	      <property name="use_stock">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      
+	      <signal name="clicked" handler="DerivedDialog::on_button_quit"/>
 	    </object>
 	  </child>
 	</object>
