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,24 @@
 
 Gtk::Dialog* pDialog = 0;
 
+class MySlots : public Glib::SlotsContainer
+{
+private:
+GTKBUILDER_DECLARE_SLOTS(
+  GTKBUILDER_SLOT(MySlots, on_button_clicked)
+);
+
 void on_button_clicked()
 {
   if(pDialog)
     pDialog->hide(); //hide() will cause main::run() to end.
 }
 
+};
+
 int main (int argc, char **argv)
 {
+  MySlots slots;
   Gtk::Main kit(argc, argv);
 
   //Load the GtkBuilder file and instantiate its widgets:
@@ -29,19 +39,12 @@
     std::cerr << "BuilderError: " << ex.what() << std::endl;
     return 1;
   }
+  refBuilder->connect_signals(slots);
 
   //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,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="on_button_clicked"/>
 	    </object>
 	  </child>
 	</object>
