diff --git a/pd/src/x_connective.c b/pd/src/x_connective.c
index fcc5bd3bab9a32b0f54fcd0dff27242691c96d24..2ca8ef53a750c9caf63dc41e198a2c19fe790de9 100644
--- a/pd/src/x_connective.c
+++ b/pd/src/x_connective.c
@@ -372,6 +372,11 @@ static void sel1_symbol(t_sel1 *x, t_symbol *s)
     else outlet_symbol(x->x_outlet2, s);
 }
 
+static void sel1_bang(t_sel1 *x)
+{
+	sel1_symbol(x, gensym("bang"));
+}
+
 static t_class *sel2_class;
 
 typedef struct _selectelement
@@ -422,6 +427,11 @@ static void sel2_symbol(t_sel2 *x, t_symbol *s)
     outlet_symbol(x->x_rejectout, s);
 }
 
+static void sel2_bang(t_sel2 *x)
+{
+	sel2_symbol(x, gensym("bang"));
+}
+
 static void sel2_free(t_sel2 *x)
 {
     freebytes(x->x_vec, x->x_nelement * sizeof(*x->x_vec));
@@ -489,11 +499,13 @@ void select_setup(void)
         sizeof(t_sel1), 0, 0);
     class_addfloat(sel1_class, sel1_float);
     class_addsymbol(sel1_class, sel1_symbol);
+    class_addbang(sel1_class, sel1_bang);
 
     sel2_class = class_new(gensym("select"), 0, (t_method)sel2_free,
         sizeof(t_sel2), 0, 0);
     class_addfloat(sel2_class, sel2_float);
     class_addsymbol(sel2_class, sel2_symbol);
+	class_addbang(sel2_class, sel2_bang);
 
     class_addcreator((t_newmethod)select_new, gensym("select"),  A_GIMME, 0);
     class_addcreator((t_newmethod)select_new, gensym("sel"),  A_GIMME, 0);