--- a/gladeui/glade-signal-editor.c	2011-06-29 19:53:56.000000000 -0300
+++ b/gladeui/glade-signal-editor.c	2012-01-09 11:08:01.716772318 -0300
@@ -172,34 +172,48 @@
 
 static void
 on_handler_editing_started (GtkCellRenderer* renderer,
-                            GtkCellEditable* editable,
-                            gchar* path,
-                            gpointer user_data)
+                           GtkCellEditable* editable,
+                           gchar* path,
+                           gpointer user_data)
 {
-  GladeSignalEditor* self = GLADE_SIGNAL_EDITOR(user_data);
-  GtkTreePath* tree_path = gtk_tree_path_new_from_string (path);
+ GladeSignalEditor* self = GLADE_SIGNAL_EDITOR(user_data);
+ GtkTreePath* tree_path = gtk_tree_path_new_from_string (path);
 
-  /* Remove the <Type here> */
-  if (GTK_IS_ENTRY (editable))
-    {
-      GtkTreeIter iter;
-      GladeSignal* signal;
-      gboolean dummy;
-      gtk_tree_model_get_iter (self->priv->model,
-			       &iter,
-			       tree_path);
-      gtk_tree_model_get (self->priv->model,
-			  &iter,
-			  GLADE_SIGNAL_COLUMN_SIGNAL, &signal,
-			  -1);
-      dummy = glade_signal_is_dummy (signal);
-      if (dummy)
-	{
-	  gtk_entry_set_text (GTK_ENTRY (editable), "");
-	}
-      g_object_unref (signal);
-    }
-  gtk_tree_path_free (tree_path);
+ /* Remove the <Type here> */
+ if (GTK_IS_ENTRY (editable))
+   {
+     GtkTreeIter iter;
+     GladeSignal* signal;
+     gboolean dummy;
+     gchar* signal_name;
+     gchar* handler_suggestion;
+     gchar* widget_name;
+
+     gtk_tree_model_get_iter (self->priv->model,
+                              &iter,
+                              tree_path);
+
+     gtk_tree_model_get (self->priv->model, &iter,
+                   GLADE_SIGNAL_COLUMN_NAME, &signal_name,
+                   GLADE_SIGNAL_COLUMN_SIGNAL, &signal, -1);
+
+     widget_name = glade_widget_get_name(self->priv->widget);
+
+
+     handler_suggestion = g_strdup_printf("on_%s_%s",
+                     widget_name,
+                     signal_name);
+
+     dummy = glade_signal_is_dummy (signal);
+     if (dummy)
+       {
+         gtk_entry_set_text (GTK_ENTRY (editable), handler_suggestion);
+       }
+
+     g_free (handler_suggestion);
+     g_object_unref (signal);
+   }
+ gtk_tree_path_free (tree_path);
 }
 
 static void
