diff --git a/pd/src/g_rtext.c b/pd/src/g_rtext.c
index 4bcb119e245e555199d9020df963b42b25c6f871..e4ad0c5ccd94d395869a5a971edb5dc48d0a5f3c 100644
--- a/pd/src/g_rtext.c
+++ b/pd/src/g_rtext.c
@@ -47,7 +47,7 @@ struct _rtext
     int x_drawnheight;
     t_text *x_text;
     t_glist *x_glist;
-    char x_tag[20];
+    char x_tag[50];
     struct _rtext *x_next;
 };
 
@@ -61,7 +61,8 @@ t_rtext *rtext_new(t_glist *glist, t_text *who)
         x->x_drawnwidth = x->x_drawnheight = 0;
     binbuf_gettext(who->te_binbuf, &x->x_buf, &x->x_bufsize);
     glist->gl_editor->e_rtext = x;
-    sprintf(x->x_tag, "x%lx", (long)who);
+    sprintf(x->x_tag, ".x%lx.t%lx", (t_int)glist_getcanvas(x->x_glist),
+        (t_int)x);
     return (x);
 }
 
diff --git a/pd/src/g_scalar.c b/pd/src/g_scalar.c
index e650e03e10364c98fabd4d11c918ebe63dd4924e..ab8315f153f899a2a8c84e6b24f7962f0e4d5f34 100644
--- a/pd/src/g_scalar.c
+++ b/pd/src/g_scalar.c
@@ -473,29 +473,14 @@ void scalar_select(t_gobj *z, t_glist *owner, int state)
             glist_getcanvas(owner), x);
         sys_vgui(".x%lx.c addtag scalar_selected withtag {.scalar%lx}\n",
             glist_getcanvas(owner), x->sc_vec);
-        if (x->sc_selected != glist_getcanvas(owner))
-        {
-            // we are inside gop
-            sys_vgui(".x%lx.c addtag scalarGOP withtag blankscalar%lx\n",
-                glist_getcanvas(owner), x);
-            sys_vgui(".x%lx.c addtag scalarGOP withtag {.scalar%lx}\n",
-                glist_getcanvas(owner), x->sc_vec);
-        }
     }
     else
     {
+        x->sc_selected = 0;
         sys_vgui(".x%lx.c dtag blankscalar%lx selected\n",
             glist_getcanvas(owner), x);
         sys_vgui(".x%lx.c dtag .scalar%lx scalar_selected\n",
             glist_getcanvas(owner), x->sc_vec);
-        if (x->sc_selected != glist_getcanvas(owner))
-        {
-            sys_vgui(".x%lx.c dtag blankscalar%lx scalarGOP\n",
-                    glist_getcanvas(owner), x);
-                sys_vgui(".x%lx.c dtag .scalar%lx scalarGOP\n",
-                    glist_getcanvas(owner), x->sc_vec);
-        }
-        x->sc_selected = 0;
     }
     //sys_vgui("pdtk_select_all_gop_widgets .x%lx %lx %d\n",
     //    glist_getcanvas(owner), owner, state);
diff --git a/pd/src/pd.tk b/pd/src/pd.tk
index 5944eaeecff6f8b5dcf4bb55e52e6d81a8e06bcd..a71b5b16fd3f2beeb6cd4a96c3462255aee19333 100644
--- a/pd/src/pd.tk
+++ b/pd/src/pd.tk
@@ -4203,7 +4203,7 @@ proc pdtk_canvas_mouseup {name x y b} {
 proc pdtk_select_all_gop_widgets {name gop state} {
 	#puts stderr "pdtk_select_all_gop_widgets $name $gop $state"
 	foreach item [$name.c find all] {
-		#puts stderr [$name.c gettags $item]
+		#puts stderr "object tags [$name.c gettags $item]"
 		foreach tag [$name.c gettags $item] {
 			if { [string first $gop $tag] > -1 } {
 				#puts stderr "...match $tag"
@@ -8159,7 +8159,7 @@ proc pdtk_canvas_update_sticky_tip {w} {
 proc pdtk_canvas_displace_withtag {w dx dy} {
 	#puts stderr "pdtk_canvas_displace_withtag $dx $dy"
     $w move selected $dx $dy
-    foreach item [$w find withtag {scalar_selected&&!scalarGOP}] {
+    foreach item [$w find withtag scalar_selected] {
         set matrix [lindex [$w itemconfigure $item -matrix] 4]
         #puts stderr "A:$matrix"
         set newx [expr {[lindex $matrix 2 0] + $dx}]
@@ -8168,15 +8168,6 @@ proc pdtk_canvas_displace_withtag {w dx dy} {
         #puts stderr "B:$matrix"
         $w itemconfigure $item -matrix $matrix
     }
-    foreach item [$w find withtag {scalar_selected&&scalarGOP}] {
-        set matrix [lindex [$w itemconfigure $item -matrix] 4]
-        #puts stderr "C:$matrix"
-        set newx [expr {[lindex $matrix 2 0] + ($dx * [expr 1.0-[lindex $matrix 0 0]])}]
-        set newy [expr {[lindex $matrix 2 1] + ($dy * [expr 1.0-[lindex $matrix 1 1]])}]
-        set matrix [lreplace $matrix 2 2 [list $newx $newy]]
-        #puts stderr "D:$matrix"
-        $w itemconfigure $item -matrix $matrix
-    }
 }
 
 # move activewidth to toggle on editmode?