diff --git a/plugins/debug-manager/watch.c b/plugins/debug-manager/watch.c
index 7453dfc..166a71b 100644
--- a/plugins/debug-manager/watch.c
+++ b/plugins/debug-manager/watch.c
@@ -354,6 +354,31 @@ on_debug_tree_button_press (GtkWidget *widget, GdkEventButton *bevent, gpointer
 	return FALSE;
 }
 
+static void
+on_debug_tree_drag_data_received (GtkWidget        *widget,
+								  GdkDragContext   *context,
+								  gint              x,
+								  gint              y,
+								  GtkSelectionData *selection_data,
+								  guint             info,
+								  guint             timestamp,
+								  gpointer          user_data)
+{
+	const gchar* signal_data = (gchar*) gtk_selection_data_get_data (selection_data);
+	IAnjutaDebuggerVariableObject var = {NULL, NULL, NULL, NULL, FALSE, FALSE, FALSE, -1};
+
+	if (signal_data != NULL)
+	{
+		var.expression = signal_data;
+		debug_tree_add_watch (((ExprWatch *)user_data)->debug_tree, &var, FALSE);
+	}
+
+	gtk_drag_finish (context, FALSE, FALSE, timestamp);
+
+	return;
+}
+
+
 /* Actions table
  *---------------------------------------------------------------------------*/
 
@@ -432,6 +457,7 @@ static void
 create_expr_watch_gui (ExprWatch * ew)
 {
 	AnjutaUI *ui;
+	GtkTargetList* tl;
 	
 	ew->debug_tree = debug_tree_new (ew->plugin);
 	ew->scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
@@ -457,7 +483,18 @@ create_expr_watch_gui (ExprWatch * ew)
 											G_N_ELEMENTS (toggle_watch),
 											GETTEXT_PACKAGE, TRUE, ew);
 	g_signal_connect (debug_tree_get_tree_widget (ew->debug_tree), "button-press-event", G_CALLBACK (on_debug_tree_button_press), ew);  
-	
+
+	gtk_drag_dest_set(debug_tree_get_tree_widget (ew->debug_tree), GTK_DEST_DEFAULT_ALL, drag_targets, 4, GDK_ACTION_COPY|GDK_ACTION_MOVE|GDK_ACTION_LINK);
+	tl = gtk_drag_dest_get_target_list (GTK_WIDGET (debug_tree_get_tree_widget (ew->debug_tree)));
+
+	if (tl != NULL)
+	{
+		GdkAtom target = gdk_atom_intern_static_string ("application/x-watch-signal");
+		gtk_target_list_add (tl, target, GTK_TARGET_OTHER_WIDGET, TARGET_WATCH);
+	}
+
+	g_signal_connect (debug_tree_get_tree_widget (ew->debug_tree), "drag_data_received", G_CALLBACK (on_debug_tree_drag_data_received), ew);
+
 	gtk_widget_show_all (ew->scrolledwindow);
 }
 
diff --git a/plugins/debug-manager/watch.h b/plugins/debug-manager/watch.h
index 4eb68ab..9179541 100644
--- a/plugins/debug-manager/watch.h
+++ b/plugins/debug-manager/watch.h
@@ -37,6 +37,20 @@ enum {
 	WATCH_N_COLUMNS
 };
 
+enum targets {
+	TARGET_STRING,
+	TARGET_URL
+};
+
+#define TARGET_WATCH 200
+
+static const GtkTargetEntry drag_targets[] = {
+	{"application-x/anjuta", GTK_TARGET_SAME_APP, TARGET_STRING},
+	{ "STRING",        GTK_TARGET_SAME_APP, TARGET_STRING },
+	{ "text/plain",    GTK_TARGET_SAME_APP, TARGET_STRING },
+	{ "text/uri-list", GTK_TARGET_SAME_APP, TARGET_URL }
+};
+
 ExprWatch* expr_watch_new (AnjutaPlugin *plugin);
 void expr_watch_destroy (ExprWatch *ew);
 
