diff --git a/src/g_canvas.c b/src/g_canvas.c
index d29ff1574a5fbb73498e04972b6f65c4164b34fc..717e0ebc2574b4e785084960477ae7aa33028a7f 100644
--- a/src/g_canvas.c
+++ b/src/g_canvas.c
@@ -820,22 +820,26 @@ void canvas_redraw(t_canvas *x)
     own window. */
 void glist_menu_open(t_glist *x)
 {
-    if (glist_isvisible(x) && !glist_istoplevel(x))
+    if (glist_isvisible(x))
     {
-        t_glist *gl2 = x->gl_owner;
-        if (!gl2) 
-            bug("glist_menu_open");  /* shouldn't happen but not dangerous */
-        else
-        {
-                /* erase ourself in parent window */
-            gobj_vis(&x->gl_gobj, gl2, 0);
-                    /* get rid of our editor (and subeditors) */
-            if (x->gl_editor)
-                canvas_destroy_editor(x);
-            x->gl_havewindow = 1;
-                    /* redraw ourself in parent window (blanked out this time) */
-            gobj_vis(&x->gl_gobj, gl2, 1);
-        }
+		if (!glist_istoplevel(x)) {
+		    t_glist *gl2 = x->gl_owner;
+		    if (!gl2) 
+		        bug("glist_menu_open");  /* shouldn't happen but not dangerous */
+		    else
+		    {
+		            /* erase ourself in parent window */
+		        gobj_vis(&x->gl_gobj, gl2, 0);
+		                /* get rid of our editor (and subeditors) */
+		        if (x->gl_editor)
+		            canvas_destroy_editor(x);
+		        x->gl_havewindow = 1;
+		                /* redraw ourself in parent window (blanked out this time) */
+		        gobj_vis(&x->gl_gobj, gl2, 1);
+		    }
+		} else {
+			sys_vgui("focus .x%lx\n", (t_int)x);
+		}
     } else {
         if (x->gl_editor)
             canvas_destroy_editor(x);
diff --git a/src/g_graph.c b/src/g_graph.c
index ae9317e0aa7ad1e4a08b312f4cbf501a4ec87b6d..1143efd1b85d97f84d1616c28b5764cfbf1a3a88 100644
--- a/src/g_graph.c
+++ b/src/g_graph.c
@@ -785,7 +785,7 @@ static void graph_vis(t_gobj *gr, t_glist *parent_glist, int vis)
 	    if (vis && gobj_shouldvis(gr, parent_glist))
 	    {
 	        sys_vgui("catch {.x%lx.c create polygon\
- %d %d %d %d %d %d %d %d %d %d -tags %s -fill #c0c0c0}\n",
+ %d %d %d %d %d %d %d %d %d %d -tags %s -fill $graph_outline}\n",
 	            glist_getcanvas(x->gl_owner),
 				//parent_glist,
 	            x1, y1, x1, y2, x2, y2, x2, y1, x1, y1, tag);
@@ -1122,6 +1122,7 @@ static void graph_select(t_gobj *z, t_glist *glist, int state)
     else //if(glist_istoplevel(glist))
     {
 		//fprintf(stderr,"...yes\n");
+		//fprintf(stderr,"%lx %lx %lx\n", glist_getcanvas(glist), glist, x);
         t_rtext *y = glist_findrtext(glist, &x->gl_obj);
         if (canvas_showtext(x))
             rtext_select(y, state);
@@ -1141,7 +1142,7 @@ static void graph_select(t_gobj *z, t_glist *glist, int state)
 */
         	sys_vgui(".x%lx.c itemconfigure %s -fill %s\n",
                  canvas, rtext_gettag(y), 
-                 (state? "$select_color" : "black"));
+                 (state? "$select_color" : "$graph_outline"));
 		}
 		t_gobj *g;
 		if (x->gl_list)
diff --git a/src/g_scalar.c b/src/g_scalar.c
index b5af20a01ebfcc24d3d9ec3dae7a26d6fbed6e8f..35321e172f056720a9958a6bd88c9eb9c55e2e04 100644
--- a/src/g_scalar.c
+++ b/src/g_scalar.c
@@ -230,7 +230,7 @@ static void scalar_select(t_gobj *z, t_glist *owner, int state)
         template_notify(tmpl, (state ? gensym("select") : gensym("deselect")),
             1, &at);
     gpointer_unset(&gp);
-	sys_vgui("pdtk_select_all_gop_widgets .x%lx %lx %d\n", glist_getcanvas(owner), owner, state);
+	//sys_vgui("pdtk_select_all_gop_widgets .x%lx %lx %d\n", glist_getcanvas(owner), owner, state);
     scalar_drawselectrect(x, owner, state);
 }
 
diff --git a/src/pd.tk b/src/pd.tk
index 2500c44ebae209d68a44212c8e13298343d244c0..5153a30f0ad7ae8bcdc5d5b0ab19ec13e8c95479 100644
--- a/src/pd.tk
+++ b/src/pd.tk
@@ -5460,12 +5460,12 @@ proc pdtk_data_dialog {name stuff} {
 
     match_linux_wm [list frame $name.buttonframe]
     pack $name.buttonframe -side bottom -fill x -pady 3
-	match_linux_wm [list button $name.buttonframe.send -text {Send (Ctrl s)}\
+	match_linux_wm [list button $name.buttonframe.send -text {Send (Ctrl+s)}\
     	-command [concat dodata_send $name]]
-	match_linux_wm [list button $name.buttonframe.ok -text {OK (Ctrl t)}\
+	match_linux_wm [list button $name.buttonframe.ok -text {OK (Ctrl+t)}\
     	-command [concat dodata_ok $name]]
-    pack $name.buttonframe.ok -side right -expand 0 -pady 3
-    pack $name.buttonframe.send -side right -expand 0 -pady 3
+    pack $name.buttonframe.ok -side right -expand 0 -pady 3 -padx 3
+    pack $name.buttonframe.send -side right -expand 0 -pady 3 -padx 3
 
     match_linux_wm [list text $name.text -relief sunken -bd 1 -height 40 -width 60 \
         -yscrollcommand "$name.scroll set" -font $pd_deffont \