diff --git a/src/g_editor.c b/src/g_editor.c
index 77e018d763b9bc47afff0b64fee3d394402b4f0b..5bab962efb5a1b67b4b5ba626aeb6c1cf60894ab 100644
--- a/src/g_editor.c
+++ b/src/g_editor.c
@@ -348,7 +348,8 @@ void glist_noselect(t_glist *x)
             glist_deselect(x, x->gl_editor->e_selection->sel_what);
         if (x->gl_editor->e_selectedline)
             glist_deselectline(x);
-		c_selection = NULL;
+		if (c_selection == x)
+			c_selection = NULL;
     }
 }
 
@@ -3210,7 +3211,10 @@ static void canvas_dopaste(t_canvas *x, t_binbuf *b)
     int dspstate = canvas_suspend_dsp(), nbox, count;
 
     canvas_editmode(x, 1.);
-    glist_noselect(x);
+	if (x != c_selection)
+		glist_noselect(c_selection);
+	else
+    	glist_noselect(x);
     for (g2 = x->gl_list, nbox = 0; g2; g2 = g2->g_next) nbox++;
     
 	/* found the end of the queue */
@@ -3275,7 +3279,7 @@ static void canvas_paste(t_canvas *x)
 
 static void canvas_duplicate(t_canvas *x)
 {
-    //if (x->gl_editor->e_onmotion == MA_NONE && x->gl_editor->e_selection)
+	//if (x->gl_editor->e_onmotion == MA_NONE && x->gl_editor->e_selection)
 	if (x->gl_editor->e_onmotion == MA_NONE && c_selection && c_selection->gl_editor->e_selection)
     {
         //canvas_copy(x);
diff --git a/src/m_pd.h b/src/m_pd.h
index fad2133d47102b92598df8bab2e7ee5135bddb5f..bad40a6c296b4a02b7ac37c72b48c524e1b7e232 100644
--- a/src/m_pd.h
+++ b/src/m_pd.h
@@ -11,7 +11,7 @@ extern "C" {
 #define PD_MAJOR_VERSION 0
 #define PD_MINOR_VERSION 42
 #define PD_BUGFIX_VERSION 5
-#define PD_TEST_VERSION "extended-l2ork-20110210"
+#define PD_TEST_VERSION "extended-l2ork-20110217"
 
 /* old name for "MSW" flag -- we have to take it for the sake of many old
 "nmakefiles" for externs, which will define NT and not MSW */
diff --git a/src/pd.tk b/src/pd.tk
index da6f44d6284ba91cfba820c3cabad859e33a3384..b284be9686c8271e06916aeabcf051faf6c3c219 100644
--- a/src/pd.tk
+++ b/src/pd.tk
@@ -2354,6 +2354,8 @@ proc pdtk_canvas_new {name width height geometry editable} {
     #   after 1 [concat raise $name]
     global pdtk_canvas_mouseup_name
     set pdtk_canvas_mouseup_name ""
+
+	bind $name <FocusIn> "menu_fixeditmenu $name"
 }
 
 #### jsarlo #####