diff --git a/pd/src/g_editor.c b/pd/src/g_editor.c
index 0d40081f75d24258612dde2333d7b1fa6a8dc3d5..ff664ddf6d1c817be39d682f617f60101f39334e 100644
--- a/pd/src/g_editor.c
+++ b/pd/src/g_editor.c
@@ -5184,7 +5184,7 @@ extern void graph_checkgop_rect(t_gobj *z, t_glist *glist,
 
 void canvas_motion(t_canvas *x, t_floatarg xpos, t_floatarg ypos,
     t_floatarg fmod)
-{ 
+{
     //fprintf(stderr,"motion %d %d %d %d\n",
     //    (int)xpos, (int)ypos, (int)fmod, canvas_last_glist_mod);
     //fprintf(stderr,"canvas_motion=%d\n",x->gl_editor->e_onmotion);
diff --git a/pd/src/g_graph.c b/pd/src/g_graph.c
index 05eccc20f26d1217a626f5545c8939907d90ff43..1f1d2b0e8c2779f2df02215d0edf2861ef26bd3e 100644
--- a/pd/src/g_graph.c
+++ b/pd/src/g_graph.c
@@ -803,7 +803,7 @@ int text_ypix(t_text *x, t_glist *glist)
     This is too conservative -- for instance, when you draw an "open"
     rectangle on the parent, you shouldn't have to redraw the window!  */
 void glist_redraw(t_glist *x)
-{  
+{
     if (glist_isvisible(x))
     {
             /* LATER fix the graph_vis() code to handle both cases */
diff --git a/pd/src/g_scalar.c b/pd/src/g_scalar.c
index 444e7b602422af784e7084c6a951c4df85877e2e..f962034ba965e69d9ff0f5f1bc9f72ebcdcf431d 100644
--- a/pd/src/g_scalar.c
+++ b/pd/src/g_scalar.c
@@ -833,7 +833,6 @@ int scalar_groupclick(struct _glist *groupcanvas,
         if (pd_class(&y->g_pd) == canvas_class &&
             ((t_glist *)y)->gl_svg)
         {
-//            fprintf(stderr, "fuck dolphins");
             if (hit = scalar_groupclick((t_glist *)y, data, template, sc, ap,
                 owner, xloc, yloc, xpix, ypix,
                 shift, alt, dbl, doit, basex, basey))
diff --git a/pd/src/g_template.c b/pd/src/g_template.c
index ebd3ac82689d1e45b59496c1e84601bc06e73c41..ffc853ed58e564fe8a3322e26595e3ea55bc682e 100644
--- a/pd/src/g_template.c
+++ b/pd/src/g_template.c
@@ -5121,14 +5121,16 @@ static void plot_vis(t_gobj *z, t_glist *glist, t_glist *parentglist,
                     fielddesc_cvttocoord(yfielddesc, yval);
                 for (y = elemtemplatecanvas->gl_list; y; y = y->g_next)
                 {
+                    /* We're setting up a special group that will get set as
+                       the parent by array elements */
+                    sys_vgui(".x%lx.c create group -tags {.scelem%lx.%lx} "
+                             "-parent {.dgroup%lx.%lx}\n",
+                        glist_getcanvas(glist), elemtemplatecanvas,
+                        (t_word *)(elem + elemsize * i),
+                        x->x_canvas, data);
                     if (pd_class(&y->g_pd) == canvas_class &&
                         ((t_glist *)y)->gl_svg)
                     {
-                        sys_vgui(".x%lx.c create group -tags {.scelem%lx.%lx} "
-                                 "-parent {.dgroup%lx.%lx}\n",
-                            glist_getcanvas(glist), elemtemplatecanvas,
-                            (t_word *)(elem + elemsize * i),
-                            x->x_canvas, data);
                         plot_groupvis(sc, glist,
                             (t_word *)(elem + elemsize * i),
                         template, (t_glist *)y,