diff --git a/pd/src/g_editor.c b/pd/src/g_editor.c
index 5d8dcff858e7059a209b9bbe99f9996a0aadab30..94068132e5b58d654c4fc3e104dbc0c5d3e7ce04 100644
--- a/pd/src/g_editor.c
+++ b/pd/src/g_editor.c
@@ -4545,9 +4545,11 @@ void canvas_key(t_canvas *x, t_symbol *s, int ac, t_atom *av)
 	{
 		//fprintf(stderr,"ctrl\n");
 		glob_ctrl = down;
-		if(x->gl_edit && x->gl_editor->e_onmotion == MA_NONE)
+		if(x->gl_edit && x->gl_editor->e_onmotion == MA_NONE) {
         	canvas_setcursor(x, down ?
             	CURSOR_RUNMODE_NOTHING : CURSOR_EDITMODE_NOTHING);
+        	sys_vgui("pdtk_canvas_editval .x%lx %d\n", (t_int)x, down ? 0 : 1);
+        }
 	}
 	//fprintf(stderr," %d %d %d %s %d %d\n", glob_shift, glob_ctrl, glob_alt, gotkeysym->s_name, keynum, down);
 	//canvas_motion(x, canvas_last_glist_x, canvas_last_glist_y, canvas_last_glist_mod);
diff --git a/pd/src/pd.tk b/pd/src/pd.tk
index cb6284da197c024334e76588302ec6cbf7ddb716..bc015c70719c26e4bfd17a34e50a20f050afb59d 100644
--- a/pd/src/pd.tk
+++ b/pd/src/pd.tk
@@ -2494,6 +2494,8 @@ proc pdtk_canvas_new {name width height geometry editable} {
 		pack $name.k12frame.edit.b -side left -expand 1 -padx 1 -pady 0
 		setTooltip $name.k12frame.edit.b "Toggle between building and playing an instrument"
 		pdtk_standardkeybindings $name.k12frame.edit.b
+		bind $name.k12frame.edit.b <Key> [list pdtk_canvas_sendkey $name.c 1 %K %A 0 1 %t]
+    	bind $name.k12frame.edit.b <KeyRelease> [list pdtk_canvas_sendkey $name.c 0 %K %A 0 1 %t]
 
 		# ---------------------------------- DATA VS SOUND BUTTONS ----------------------------------
 		match_linux_wm [list frame $name.k12frame.datasound -relief flat]