diff --git a/pd/src/g_template.c b/pd/src/g_template.c
index 1d972bd4b18957e68880935ee53f95369f8f1d20..fddd01ca0742578e6852449b7b76449475c8fb5f 100644
--- a/pd/src/g_template.c
+++ b/pd/src/g_template.c
@@ -4449,13 +4449,18 @@ static void *event_new(void)
         x->x_bindsym = gensym(namebuf);
         pd_bind(&x->x_obj.ob_pd, x->x_bindsym);
     }
+    else
+    {
+        x->x_bindsym = 0;
+    }
     outlet_new(&x->x_obj, &s_anything);
     return (x);
 }
 
 static void event_free(t_event *x)
 {
-    pd_unbind(&x->x_obj.ob_pd, x->x_bindsym);
+    if (x->x_bindsym)
+        pd_unbind(&x->x_obj.ob_pd, x->x_bindsym);
 }
 
 void event_setup(void)