diff --git a/externals/ekext/lpreson~.c b/externals/ekext/lpreson~.c
index 0047d1258487695bd9e4955ee5e955d2ca8d1179..6ce0619d25de65635f0c42143359d83609ee69ce 100644
--- a/externals/ekext/lpreson~.c
+++ b/externals/ekext/lpreson~.c
@@ -108,9 +108,18 @@ void *lpreson_tilde_dsp(t_lpreson_tilde *x, t_signal **sp)
 
 void *lpreson_tilde_new(t_floatarg f)
 {
+  t_atom *init;
   t_lpreson_tilde *x = (t_lpreson_tilde *)pd_new(lpreson_tilde_class);
   x->x_order = f >= 1 ? (int)f : 5;
-  
+  init = (t_atom *)t_getbytes(sizeof(t_atom) * x->x_order);
+  int i;
+  /* init the list-- not sure what an identity list would be
+     so I'm just setting zeroes here. */
+  for (i = 0; i < x->x_order; i++)
+      SETFLOAT(init + i, 0.);
+
+  lpreson_tilde_list(x, &s_, x->x_order, init);
+
   outlet_new(&x->x_obj, &s_signal);
   return (void *)x;
 }