diff --git a/externals/iem/iem_adaptfilt/src/NLMSCC~.c b/externals/iem/iem_adaptfilt/src/NLMSCC~.c
index 48f501acace66b24f65b717df50109d176942314..5824e1fb997d10b9d9293f1eacc10dafd6c12c2b 100644
--- a/externals/iem/iem_adaptfilt/src/NLMSCC~.c
+++ b/externals/iem/iem_adaptfilt/src/NLMSCC~.c
@@ -313,7 +313,22 @@ static void *NLMSCC_tilde_new(t_symbol *s, t_int argc, t_atom *argv)
     t_symbol    *wmax_name;
     t_float beta=0.1f;
     t_float gammax=0.00001f;
-    
+    t_atom sane_defaults[6];
+
+    if (!argc)
+    {
+        post("NLMSCC~: warning: no arguments supplied: setting default values "
+             "to [NLMSCC~ 2 0.1 0.00001 a b c]");
+        SETFLOAT(sane_defaults, 2.);
+        SETFLOAT(sane_defaults+1, 0.1);
+        SETFLOAT(sane_defaults+2, 0.00001);
+        SETSYMBOL(sane_defaults+3, gensym("a"));
+        SETSYMBOL(sane_defaults+4, gensym("b"));
+        SETSYMBOL(sane_defaults+5, gensym("c"));
+        argc = 6;
+        argv = sane_defaults;
+    }
+
     if((argc >= 6) &&
         IS_A_FLOAT(argv,0) &&   //IS_A_FLOAT/SYMBOL from iemlib.h
         IS_A_FLOAT(argv,1) &&
diff --git a/externals/iem/iem_adaptfilt/src/NLMSerr_in~.c b/externals/iem/iem_adaptfilt/src/NLMSerr_in~.c
index f48f302cd121e3528c07324965f6b36397b1d0d4..b0f300e67c27ed64b94bf931d7e7b96f67d5af54 100644
--- a/externals/iem/iem_adaptfilt/src/NLMSerr_in~.c
+++ b/externals/iem/iem_adaptfilt/src/NLMSerr_in~.c
@@ -221,7 +221,20 @@ static void *NLMSerr_in_tilde_new(t_symbol *s, t_int argc, t_atom *argv)
     t_symbol    *w_name;
     t_float beta=0.01f;
     t_float gammax=0.00001f;
-    
+    t_atom sane_defaults[4];
+
+    if (!argc)
+    {
+        post("NLMSerr_in~: warning: no arguments supplied: setting default "
+             "values to [NLMSerr_in~ 2 0.01 0.00001 a]");
+        SETFLOAT(sane_defaults, 2.);
+        SETFLOAT(sane_defaults+1, 0.01);
+        SETFLOAT(sane_defaults+2, 0.00001);
+        SETSYMBOL(sane_defaults+3, gensym("a"));
+        argc = 4;
+        argv = sane_defaults;
+    }
+
     if((argc >= 4) &&
         IS_A_FLOAT(argv,0) &&   //IS_A_FLOAT/SYMBOL from iemlib.h
         IS_A_FLOAT(argv,1) &&
diff --git a/externals/iem/iem_adaptfilt/src/NLMS~.c b/externals/iem/iem_adaptfilt/src/NLMS~.c
index f54efc64de19b3a807d3428a3993a70b785370a0..ee225baa1f5b44300976fe996364f385bf810a5c 100644
--- a/externals/iem/iem_adaptfilt/src/NLMS~.c
+++ b/externals/iem/iem_adaptfilt/src/NLMS~.c
@@ -266,7 +266,20 @@ static void *NLMS_tilde_new(t_symbol *s, t_int argc, t_atom *argv)
     t_symbol    *w_name;
     t_float beta=0.1f;
     t_float gammax=0.00001f;
+    t_atom sane_defaults[4];
     
+    if (!argc)
+    {
+        post("NLMS~: warning: no arguments supplied: setting default "
+             "values to [NLMS~ 2 0.1 0.00001 a]");
+        SETFLOAT(sane_defaults, 2.);
+        SETFLOAT(sane_defaults+1, 0.1);
+        SETFLOAT(sane_defaults+2, 0.00001);
+        SETSYMBOL(sane_defaults+3, gensym("a"));
+        argc = 4;
+        argv = sane_defaults;
+    }
+
     if((argc >= 4) &&
         IS_A_FLOAT(argv,0) &&   //IS_A_FLOAT/SYMBOL from iemlib.h
         IS_A_FLOAT(argv,1) &&
diff --git a/externals/iem/iem_adaptfilt/src/n_CLNLMS~.c b/externals/iem/iem_adaptfilt/src/n_CLNLMS~.c
index 3153c0b98716d3ea1de66364ff1526919e632594..23a00d8d4fd57335e078995963c1bd69468c9393 100644
--- a/externals/iem/iem_adaptfilt/src/n_CLNLMS~.c
+++ b/externals/iem/iem_adaptfilt/src/n_CLNLMS~.c
@@ -406,6 +406,23 @@ static void *n_CLNLMS_tilde_new(t_symbol *s, t_int argc, t_atom *argv)
   t_float gammax=0.00001f;
   t_float kappa = 1.0f;
   t_float leakage = 0.99f;
+  t_atom sane_defaults[7];
+
+  if (!argc)
+  {
+    post("n_CLNLMS~: warning: no arguments supplied: setting default "
+         "values to [n_CLNLMS~ 1 2 0.1 0.00001 1 0.99 a]");
+    SETFLOAT(sane_defaults, 1.);
+    SETFLOAT(sane_defaults+1, 2.);
+    SETFLOAT(sane_defaults+2, 0.1);
+    SETFLOAT(sane_defaults+3, 0.00001);
+    SETFLOAT(sane_defaults+4, 1);
+    SETFLOAT(sane_defaults+5, 0.99);
+    SETSYMBOL(sane_defaults+6, gensym("a"));
+    argc = 7;
+    argv = sane_defaults;
+  }
+
   
   if((argc >= 7) &&
     IS_A_FLOAT(argv,0) &&   //IS_A_FLOAT/SYMBOL from iemlib.h
diff --git a/externals/iem/iem_adaptfilt/src/n_CNLMS~.c b/externals/iem/iem_adaptfilt/src/n_CNLMS~.c
index d1d6b514061814e945856674d19d1ff79091f974..1b636fc6150018a8bed50d923e9a6fc7b229044e 100644
--- a/externals/iem/iem_adaptfilt/src/n_CNLMS~.c
+++ b/externals/iem/iem_adaptfilt/src/n_CNLMS~.c
@@ -394,7 +394,23 @@ static void *n_CNLMS_tilde_new(t_symbol *s, t_int argc, t_atom *argv)
   t_float beta=0.1f;
   t_float gammax=0.00001f;
   t_float kappa = 1.0f;
-  
+  t_atom sane_defaults[6];
+
+  if (!argc)
+  {
+    post("n_CNLMS~: warning: no arguments supplied: setting default "
+         "values to [n_CLNLMS~ 1 2 0.1 0.00001 1 0.99 a]");
+    SETFLOAT(sane_defaults, 1.);
+    SETFLOAT(sane_defaults+1, 2.);
+    SETFLOAT(sane_defaults+2, 0.1);
+    SETFLOAT(sane_defaults+3, 0.00001);
+    SETFLOAT(sane_defaults+4, 1);
+    SETSYMBOL(sane_defaults+5, gensym("a"));
+    argc = 6;
+    argv = sane_defaults;
+  }
+
+
   if((argc >= 6) &&
     IS_A_FLOAT(argv,0) &&   //IS_A_FLOAT/SYMBOL from iemlib.h
     IS_A_FLOAT(argv,1) &&