diff --git a/src/g_editor.c b/src/g_editor.c
index 5bab962efb5a1b67b4b5ba626aeb6c1cf60894ab..7bb75df61b9e29724ebec60f8039a2fbc04cea5b 100644
--- a/src/g_editor.c
+++ b/src/g_editor.c
@@ -240,6 +240,8 @@ void glist_select(t_glist *x, t_gobj *y)
 {
     if (x->gl_editor)
     {
+		if (c_selection && c_selection != x)
+			glist_noselect(c_selection);
         t_selection *sel = (t_selection *)getbytes(sizeof(*sel));
         if (x->gl_editor->e_selectedline)
             glist_deselectline(x);
@@ -3211,7 +3213,7 @@ static void canvas_dopaste(t_canvas *x, t_binbuf *b)
     int dspstate = canvas_suspend_dsp(), nbox, count;
 
     canvas_editmode(x, 1.);
-	if (x != c_selection)
+	if (c_selection && c_selection != x)
 		glist_noselect(c_selection);
 	else
     	glist_noselect(x);
diff --git a/src/m_pd.h b/src/m_pd.h
index bad40a6c296b4a02b7ac37c72b48c524e1b7e232..46955b681b80751f7919113656e44bfc52e86c25 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-20110217"
+#define PD_TEST_VERSION "extended-l2ork-20110218"
 
 /* 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 */