diff --git a/pd/src/g_rtext.c b/pd/src/g_rtext.c
index d87f37769d39f400147a699d25abbbe46e79085a..a08786692461341d513ad3ad516b344aef72a8f3 100644
--- a/pd/src/g_rtext.c
+++ b/pd/src/g_rtext.c
@@ -509,9 +509,8 @@ void rtext_activate(t_rtext *x, int state)
     int w = 0, h = 0, indx;
     t_glist *glist = x->x_glist;
     t_canvas *canvas = glist_getcanvas(glist);
-    if (state && x->x_active) {
-        printf("duplicate rtext_activate\n");
-    }
+    //if (state && x->x_active) printf("duplicate rtext_activate\n");
+    if (state == x->x_active) return; // avoid excess calls
     if (state)
     {
         sys_vgui(".x%lx.c focus %s\n", canvas, x->x_tag);