diff --git a/pd/src/g_template.c b/pd/src/g_template.c
index 8db6a3019b15b4639977eee45d42936a799821a7..57a83e9333e46c431b8f49c1b7ea3bc10ad85d0a 100644
--- a/pd/src/g_template.c
+++ b/pd/src/g_template.c
@@ -5556,7 +5556,13 @@ static void plot_vis(t_gobj *z, t_glist *glist, t_glist *parentglist,
                     xpix = fielddesc_cvttocoord(xfielddesc, usexloc);
 
                     ixpix = xpix + 0.5;
-                    if (xonset >= 0 || ixpix != lastpixel)
+
+                    int render;
+
+                    render = (int)(glist_xtopixels(glist, ixpix)) !=
+                             (int)(glist_xtopixels(glist, lastpixel));
+
+                    if (xonset >= 0 || render)
                     {
                         //sys_vgui("%d %f \\\n", ixpix,
                         //        yloc + fielddesc_cvttocoord(yfielddesc,