diff --git a/src/g_bang.c b/src/g_bang.c
index 3ef86a8b5e742f68212933fdf0eadeeaa8d612e3..5d6e21f35deb6ec2ea6a9f64c0f68364ebca6eac 100644
--- a/src/g_bang.c
+++ b/src/g_bang.c
@@ -244,14 +244,14 @@ void bng_draw_select(t_bng* x, t_glist* glist)
 
 		if(x->x_gui.x_fsf.x_selected)
 		{
-		    sys_vgui(".x%lx.c itemconfigure %lxBASE -outline $select_color\n", canvas, x);
-		    sys_vgui(".x%lx.c itemconfigure %lxBUT -outline $select_color\n", canvas, x);
-		    sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x);
-
 			// check if we are drawing inside a gop abstraction visible on parent canvas
-			// if so, disable drawing of the handles
+			// if so, disable highlighting
 			if (x->x_gui.x_glist == glist_getcanvas(glist)) {
 
+				sys_vgui(".x%lx.c itemconfigure %lxBASE -outline $select_color\n", canvas, x);
+				sys_vgui(".x%lx.c itemconfigure %lxBUT -outline $select_color\n", canvas, x);
+				sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x);
+
 				if (x->x_gui.scale_vis)
 					sys_vgui("destroy %s\n", sh->h_pathname);
 
diff --git a/src/g_hdial.c b/src/g_hdial.c
index bdad64b7b409f1344c230e427983bf4290e4be49..b0d29495c547d1383859a0837ec77bee844e2261 100644
--- a/src/g_hdial.c
+++ b/src/g_hdial.c
@@ -275,16 +275,16 @@ void hradio_draw_select(t_hradio* x, t_glist* glist)
 
 		if(x->x_gui.x_fsf.x_selected)
 		{
-		    for(i=0; i<n; i++)
-		    {
-		        sys_vgui(".x%lx.c itemconfigure %lxBASE%d -outline $select_color\n", canvas, x, i);
-		    }
-		    sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x);
-
 			// check if we are drawing inside a gop abstraction visible on parent canvas
-			// if so, disable drawing of the handles
+			// if so, disable highlighting
 			if (x->x_gui.x_glist == glist_getcanvas(glist)) {
 
+				for(i=0; i<n; i++)
+				{
+				    sys_vgui(".x%lx.c itemconfigure %lxBASE%d -outline $select_color\n", canvas, x, i);
+				}
+				sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x);
+
 				if (x->x_gui.scale_vis)
 					sys_vgui("destroy %s\n", sh->h_pathname);
 
diff --git a/src/g_hslider.c b/src/g_hslider.c
index 2c8fc410882fd1e798d994ee4e329fb6ecb9f9a0..9c13f940daf07e907c036f9eb66e7ff745bd8dfb 100644
--- a/src/g_hslider.c
+++ b/src/g_hslider.c
@@ -261,13 +261,13 @@ static void hslider_draw_select(t_hslider* x,t_glist* glist)
 
 		if(x->x_gui.x_fsf.x_selected)
 		{
-		    sys_vgui(".x%lx.c itemconfigure %lxBASE -outline $select_color\n", canvas, x);
-		    sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x);
-
 			// check if we are drawing inside a gop abstraction visible on parent canvas
-			// if so, disable drawing of the handles
+			// if so, disable highlighting
 			if (x->x_gui.x_glist == glist_getcanvas(glist)) {
 
+				sys_vgui(".x%lx.c itemconfigure %lxBASE -outline $select_color\n", canvas, x);
+				sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x);
+
 				if (x->x_gui.scale_vis)
 					sys_vgui("destroy %s\n", sh->h_pathname);
 
diff --git a/src/g_mycanvas.c b/src/g_mycanvas.c
index d5c0b817b238d27250ce7ca417fca3cd16ddcfcc..127b74fdb6c14596c2dbb566fffa30048d85d023 100644
--- a/src/g_mycanvas.c
+++ b/src/g_mycanvas.c
@@ -142,12 +142,12 @@ void my_canvas_draw_select(t_my_canvas* x, t_glist* glist)
 
 		if(x->x_gui.x_fsf.x_selected)
 		{
-		    sys_vgui(".x%lx.c itemconfigure %lxBASE -outline $select_color\n", canvas, x);
-
 			// check if we are drawing inside a gop abstraction visible on parent canvas
-			// if so, disable drawing of the handles
+			// if so, disable highlighting
 			if (x->x_gui.x_glist == glist_getcanvas(glist)) {
 
+			    sys_vgui(".x%lx.c itemconfigure %lxBASE -outline $select_color\n", canvas, x);
+
 				if (x->x_gui.scale_vis)
 					sys_vgui("destroy %s\n", sh->h_pathname);
 
diff --git a/src/g_numbox.c b/src/g_numbox.c
index ab4c8b0b0d5d2a0db347e0303919ce5494f11750..c2390526c5fdd6b4c58c4f929d658a68c866bd92 100644
--- a/src/g_numbox.c
+++ b/src/g_numbox.c
@@ -435,19 +435,20 @@ static void my_numbox_draw_select(t_my_numbox *x, t_glist *glist)
 		        x->x_buf[0] = 0;
 		        sys_queuegui(x, x->x_gui.x_glist, my_numbox_draw_update);
 		    }
-		    sys_vgui(".x%lx.c itemconfigure %lxBASE1 -outline $select_color\n",
-		        canvas, x);
-		    sys_vgui(".x%lx.c itemconfigure %lxBASE2 -fill $select_color\n",
-		        canvas, x);
-		    sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n",
-		        canvas, x);
-		    sys_vgui(".x%lx.c itemconfigure %lxNUMBER -fill $select_color\n",
-		        canvas, x);
 
 			// check if we are drawing inside a gop abstraction visible on parent canvas
-			// if so, disable drawing of the handles
+			// if so, disable highlighting
 			if (x->x_gui.x_glist == glist_getcanvas(glist)) {
 
+				sys_vgui(".x%lx.c itemconfigure %lxBASE1 -outline $select_color\n",
+				    canvas, x);
+				sys_vgui(".x%lx.c itemconfigure %lxBASE2 -fill $select_color\n",
+				    canvas, x);
+				sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n",
+				    canvas, x);
+				sys_vgui(".x%lx.c itemconfigure %lxNUMBER -fill $select_color\n",
+				    canvas, x);
+
 				if (x->x_gui.scale_vis)
 					sys_vgui("destroy %s\n", sh->h_pathname);
 
diff --git a/src/g_toggle.c b/src/g_toggle.c
index 5b62522807d01739f521527fb0ecdcfd24df9c97..9f541a0d5f08f822a7ef850b4711e16bed10fa5a 100644
--- a/src/g_toggle.c
+++ b/src/g_toggle.c
@@ -262,13 +262,14 @@ void toggle_draw_select(t_toggle* x, t_glist* glist)
 
 		if(x->x_gui.x_fsf.x_selected)
 		{
+
+			// check if we are drawing inside a gop abstraction visible on parent canvas
+			// if so, disable highlighting
+			if (x->x_gui.x_glist == glist_getcanvas(glist)) {
+
 		    sys_vgui(".x%lx.c itemconfigure %lxBASE -outline $select_color\n", canvas, x);
 		    sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x);
 
-		// check if we are drawing inside a gop abstraction visible on parent canvas
-		// if so, disable drawing of the handles
-		if (x->x_gui.x_glist == glist_getcanvas(glist)) {
-
 				if (x->x_gui.scale_vis)
 					sys_vgui("destroy %s\n", sh->h_pathname);
 
diff --git a/src/g_vdial.c b/src/g_vdial.c
index de0f685450e51a955ee35c2d4169d927948ef62d..ba8e5b3ae2f799156a863a5d806aa14fc6f2804c 100644
--- a/src/g_vdial.c
+++ b/src/g_vdial.c
@@ -274,16 +274,17 @@ void vradio_draw_select(t_vradio* x, t_glist* glist)
 
 		if(x->x_gui.x_fsf.x_selected)
 		{
-		    for(i=0; i<n; i++)
-		    {
-		        sys_vgui(".x%lx.c itemconfigure %lxBASE%d -outline $select_color\n", canvas, x, i);
-		    }
-		    sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x);
 
 			// check if we are drawing inside a gop abstraction visible on parent canvas
-			// if so, disable drawing of the handles
+			// if so, disable highlighting
 			if (x->x_gui.x_glist == glist_getcanvas(glist)) {
 
+				for(i=0; i<n; i++)
+				{
+				    sys_vgui(".x%lx.c itemconfigure %lxBASE%d -outline $select_color\n", canvas, x, i);
+				}
+				sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x);
+
 				if (x->x_gui.scale_vis)
 					sys_vgui("destroy %s\n", sh->h_pathname);
 
diff --git a/src/g_vslider.c b/src/g_vslider.c
index 7c127442829e6d4106eaa74ac0b9952257c327be..c8316fba1b0ff68cdda5fe113efb56e02d767d55 100644
--- a/src/g_vslider.c
+++ b/src/g_vslider.c
@@ -252,13 +252,13 @@ static void vslider_draw_select(t_vslider *x, t_glist *glist)
 
 		if(x->x_gui.x_fsf.x_selected)
 		{
-		    sys_vgui(".x%lx.c itemconfigure %lxBASE -outline $select_color\n", canvas, x);
-		    sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x);
-
 			// check if we are drawing inside a gop abstraction visible on parent canvas
-			// if so, disable drawing of the handles
+			// if so, disable highlighting
 			if (x->x_gui.x_glist == glist_getcanvas(glist)) {
 
+				sys_vgui(".x%lx.c itemconfigure %lxBASE -outline $select_color\n", canvas, x);
+				sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x);
+
 				if (x->x_gui.scale_vis)
 					sys_vgui("destroy %s\n", sh->h_pathname);
 
diff --git a/src/g_vumeter.c b/src/g_vumeter.c
index f0a8e8f56182aa409c82909824f4bdc5e9fa5ed2..4121930465b4a1ed053bac0dfaa957f94a00b445 100644
--- a/src/g_vumeter.c
+++ b/src/g_vumeter.c
@@ -456,25 +456,25 @@ static void vu_draw_select(t_vu* x,t_glist* glist)
 
 		if(x->x_gui.x_fsf.x_selected)
 		{
-		    sys_vgui(".x%lx.c itemconfigure %lxBASE -outline $select_color\n", canvas, x);
-		    for(i=1; i<=IEM_VU_STEPS; i++)
-		    {
-		        if(((i+2)&3) && (x->x_scale))
-		            sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -fill $select_color\n",
-		                     canvas, x, i);
-		    }
-		    if(x->x_scale)
-		    {
-		        i=IEM_VU_STEPS+1;
-		        sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -fill $select_color\n",
-		                 canvas, x, i);
-		    }
-		    sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x);
-
 			// check if we are drawing inside a gop abstraction visible on parent canvas
-			// if so, disable drawing of the handles
+			// if so, disable highlighting
 			if (x->x_gui.x_glist == glist_getcanvas(glist)) {
 
+				sys_vgui(".x%lx.c itemconfigure %lxBASE -outline $select_color\n", canvas, x);
+				for(i=1; i<=IEM_VU_STEPS; i++)
+				{
+				    if(((i+2)&3) && (x->x_scale))
+				        sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -fill $select_color\n",
+				                 canvas, x, i);
+				}
+				if(x->x_scale)
+				{
+				    i=IEM_VU_STEPS+1;
+				    sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -fill $select_color\n",
+				             canvas, x, i);
+				}
+				sys_vgui(".x%lx.c itemconfigure %lxLABEL -fill $select_color\n", canvas, x);
+
 				if (x->x_gui.scale_vis)
 					sys_vgui("destroy %s\n", sh->h_pathname);