diff --git a/pd/src/g_text.c b/pd/src/g_text.c
index 8785999464ec1b9c11f2ff74c6b6d3577a33ac5a..daefd4751868504a8f6859a3f393de1b07a3a62a 100644
--- a/pd/src/g_text.c
+++ b/pd/src/g_text.c
@@ -957,7 +957,12 @@ static void gatom_set(t_gatom *x, t_symbol *s, int argc, t_atom *argv)
             gatom_retext(x, 1, 0);
         x->a_atomold = x->a_atom;
     }
-    x->a_buf[0] = 0;
+    if (x->a_atom.a_type == A_FLOAT)
+    {
+        x->a_buf[0] = 0;
+    } else {
+        strcpy(x->a_buf, x->a_atom.a_w.w_symbol->s_name);
+    }
 }
 
 static void gatom_bang(t_gatom *x)