diff --git a/pd/src/g_scalar.c b/pd/src/g_scalar.c
index 6c0a342a853beeac373cc322f228512231ab99dd..07ebe6c13a682e2d3dd73ef398c94fa35869021e 100644
--- a/pd/src/g_scalar.c
+++ b/pd/src/g_scalar.c
@@ -785,12 +785,10 @@ static void scalar_group_configure(t_scalar *x, t_glist *owner,
 {
     t_gobj *y;
     char tagbuf[MAXPDSTRING];
-    sprintf(tagbuf, "draw%lx.%lx", (long unsigned int)gl,
+    sprintf(tagbuf, "dgroup%lx.%lx", (long unsigned int)gl,
         (long unsigned int)data);
     char parentbuf[MAXPDSTRING];
-    /* check if we're in an array-- really need to see if we can just
-       get rid of the different tag names for arrays... */
-    sprintf(parentbuf, "draw%lx.%lx",
+    sprintf(parentbuf, "dgroup%lx.%lx",
         (long unsigned int)parent,
         (long unsigned int)data);
     gui_start_vmess("gui_draw_configure_all", "xs",
diff --git a/pd/src/g_template.c b/pd/src/g_template.c
index 5766bd1fc94657cf7e7ee434af0ad44223cc152f..028e834f27fd8bf8d1babcde0cb38a2169e5bee8 100644
--- a/pd/src/g_template.c
+++ b/pd/src/g_template.c
@@ -3607,8 +3607,8 @@ static void svg_getrectrect(t_svg *x, t_glist *glist,
     t_word *data, t_template *template, t_float basex, t_float basey,
     int *xp1, int *yp1, int *xp2, int *yp2)
 {
-    int width, height, xoff, yoff;
-    int x1, y1, x2, y2;
+    t_float width, height, xoff, yoff;
+    t_float x1, y1, x2, y2;
     x1 = y1 = 0x7fffffff;
     x2 = y2 = -0x7fffffff;
 
@@ -3672,10 +3672,10 @@ static void svg_getrectrect(t_svg *x, t_glist *glist,
         *xp2 = *yp2 = -0x7fffffff;
         return;
     }
-    *xp1 = x1;
-    *yp1 = y1;
-    *xp2 = x2;
-    *yp2 = y2;
+    *xp1 = (int)x1;
+    *yp1 = (int)y1;
+    *xp2 = (int)x2;
+    *yp2 = (int)y2;
 }
 
 void scalar_getinnersvgrect(t_gobj *z, t_glist *owner, t_word *data,
@@ -6698,8 +6698,9 @@ static void drawarray_getrect(t_gobj *z, t_glist *glist,
 
        If users really want a bbox for this in the future we can just use the
        same expensive algorithm as plot_getrect and suggest nesting in an
-       [draw svg] for performance. But for now I don't think we need that.
-    */
+       [draw svg] for performance. But for now I don't think we need that. */
+    *xp1 = *yp1 = 0x7fffffff;
+    *xp2 = *yp2 = -0x7fffffff;
 }
 
 static void drawarray_displace(t_gobj *z, t_glist *glist,
@@ -6892,13 +6893,13 @@ static void drawarray_vis(t_gobj *z, t_glist *glist, t_glist *parentglist,
                         drawarray_groupvis(sc, glist,
                             (t_word *)(elem + elemsize * i),
                         template, (t_glist *)y, 
-                            elemtemplatecanvas, usexloc, useyloc, parentarray);
+                            elemtemplatecanvas, usexloc, useyloc, array);
                     }
                     t_parentwidgetbehavior *wb = pd_getparentwidget(&y->g_pd);
                     if (!wb) continue;
                     (*wb->w_parentvisfn)(y, glist, elemtemplatecanvas, sc,
                         (t_word *)(elem + elemsize * i),
-                            elemtemplate, usexloc, useyloc, parentarray, tovis);
+                            elemtemplate, usexloc, useyloc, array, tovis);
                 }
             }
         }
@@ -6926,7 +6927,7 @@ static void drawarray_vis(t_gobj *z, t_glist *glist, t_glist *parentglist,
                 if (!wb) continue;
                 (*wb->w_parentvisfn)(y, glist, elemtemplatecanvas, sc,
                     (t_word *)(elem + elemsize * i), elemtemplate,
-                        0, 0, parentarray, 0);
+                        0, 0, array, 0);
             }
         }
         /* Now remove our drawarray svg container */