diff --git a/src/notes.txt b/src/notes.txt
index ea8ed631d312e76b6330751c5b7816c96ccb0873..9d66d8eb4a999df052ec3418346aca17033233f1 100644
--- a/src/notes.txt
+++ b/src/notes.txt
@@ -50,6 +50,8 @@ real-time spectrum grapher
 document ||, |, etc, better
 
 features:
+pasting should look at current mouse location
+optionally suppress leading "." directories and files on "open"
 change config.h to #ifdef _MSC_VER (include MSW fake) else include a real one
 stick snprintf alias in the MSW fake.
 flag to prevent unlocking patches
@@ -80,7 +82,6 @@ tables:
     flag to hide array names 
 think of a way to embed abstractions in a patch
 make watchdog work for MACOSX
-pasting should look at current mouse location
 delete-in-rectangle message to Pds
 put serial object in main dist (see rat@telecoma, Apr. 25; winfried May 22)
 open/save panel to take messages to init directory, and to set extent list
diff --git a/src/x_time.c b/src/x_time.c
index 60dcf9a50ffe801adeaeea235112a7af96a2e134..5dc9d37ffeda5b2b867b379b6b73aba4206b2c08 100644
--- a/src/x_time.c
+++ b/src/x_time.c
@@ -334,7 +334,7 @@ static void *pipe_new(t_symbol *s, int argc, t_atom *argv)
         {
             char stupid[80];
             atom_string(&argv[argc-1], stupid, 79);
-            post("pipe: %s: bad time delay value", stupid);
+            pd_error(x, "pipe: %s: bad time delay value", stupid);
             deltime = 0;
         }
         else deltime = argv[argc-1].a_w.w_float;
@@ -385,7 +385,7 @@ static void *pipe_new(t_symbol *s, int argc, t_atom *argv)
             }
             else
             {
-                if (c != 'f') error("pack: %s: bad type",
+                if (c != 'f') pd_error(x, "pipe: %s: bad type",
                     ap->a_w.w_symbol->s_name);
                 SETFLOAT(&vp->p_atom, 0);
                 vp->p_outlet = outlet_new(&x->x_obj, &s_float);
@@ -437,7 +437,7 @@ static void hang_tick(t_hang *h)
         case A_POINTER:
             if (gpointer_check(w->w_gpointer, 1))
                 outlet_pointer(p->p_outlet, w->w_gpointer);
-            else post("pipe: stale pointer");
+            else pd_error(x, "pipe: stale pointer");
             break;
         }
     }
@@ -454,7 +454,13 @@ static void pipe_list(t_pipe *x, t_symbol *s, int ac, t_atom *av)
     t_atom *ap;
     t_word *w;
     h->h_gp = (t_gpointer *)getbytes(x->x_nptr * sizeof(t_gpointer));
-    if (ac > n) ac = n;
+    if (ac > n)
+    {
+        if (av[n].a_type == A_FLOAT)
+            x->x_deltime = av[n].a_w.w_float;
+        else pd_error(x, "pipe: symbol or pointer in time inlet");
+        ac = n;
+    }
     for (i = 0, gp = x->x_gp, p = x->x_vec, ap = av; i < ac;
         i++, p++, ap++)
     {
@@ -465,7 +471,7 @@ static void pipe_list(t_pipe *x, t_symbol *s, int ac, t_atom *av)
         case A_POINTER:
             gpointer_unset(gp);
             if (ap->a_type != A_POINTER)
-                post("pipe: bad pointer");
+                pd_error(x, "pipe: bad pointer");
             else
             {
                 *gp = *(ap->a_w.w_gpointer);