Index: /trunk/Ohana/src/opihi/lib.shell/BufferOps.c
===================================================================
--- /trunk/Ohana/src/opihi/lib.shell/BufferOps.c	(revision 3900)
+++ /trunk/Ohana/src/opihi/lib.shell/BufferOps.c	(revision 3901)
@@ -137,5 +137,8 @@
   /* delete buffer entry from buffer list, if it exists */
   for (i = 0; (i < Nbuffers) && (in != buffers[i]); i++);
-  if (i == Nbuffers) return (TRUE);
+  if (i == Nbuffers) {
+    free (in);
+    return (TRUE);
+  }
 
   free (in);
@@ -157,4 +160,5 @@
   fits_free_header (&buffers[i][0].header);
   fits_free_matrix (&buffers[i][0].matrix);
+  free (buffers[i]);
 
   for (j = i; j < Nbuffers - 1; j++) buffers[j] = buffers[j + 1];
@@ -176,4 +180,5 @@
   fits_free_header (&buffers[i][0].header);
   fits_free_matrix (&buffers[i][0].matrix);
+  free (buffers[i]);
 
   for (j = i; j < Nbuffers - 1; j++) buffers[j] = buffers[j + 1];
Index: /trunk/Ohana/src/opihi/lib.shell/VectorOps.c
===================================================================
--- /trunk/Ohana/src/opihi/lib.shell/VectorOps.c	(revision 3900)
+++ /trunk/Ohana/src/opihi/lib.shell/VectorOps.c	(revision 3901)
@@ -79,4 +79,5 @@
 
   free (vectors[i][0].elements);
+  free (vectors[i]);
   for (j = i; j < Nvectors - 1; j++) vectors[j] = vectors[j + 1];
 
@@ -96,4 +97,5 @@
 
   free (vectors[i][0].elements);
+  free (vectors[i]);
   for (j = i; j < Nvectors - 1; j++) vectors[j] = vectors[j + 1];
 
@@ -136,9 +138,13 @@
   /* delete vector entry from vector list, if it exists */
   for (i = 0; (i < Nvectors) && (in != vectors[i]); i++);
-  if (i == Nvectors) return (TRUE);
+  if (i == Nvectors) {
+    free (in);
+    return (TRUE);
+  }
 
   for (j = i; j < Nvectors - 1; j++) vectors[j] = vectors[j + 1];
   Nvectors -= 1;
   REALLOCATE (vectors, Vector *, MAX (Nvectors, 1));
+  free (in);
   return (TRUE);
 }
Index: /trunk/Ohana/src/opihi/lib.shell/command.c
===================================================================
--- /trunk/Ohana/src/opihi/lib.shell/command.c	(revision 3900)
+++ /trunk/Ohana/src/opihi/lib.shell/command.c	(revision 3901)
@@ -1,4 +1,6 @@
 # include "opihi.h"
 # define VERBOSE 0
+
+static int Ncalls = 0;
 
 int command (char *line, char **outline) {
@@ -7,4 +9,6 @@
   char **argv, **targv;
   Command *cmd;
+
+  Ncalls ++;
 
   /* force a space between ! and first word: !ls becomes ! ls */
@@ -73,2 +77,6 @@
 
 }
+
+void print_ncals () {
+  fprintf (stderr, "Ncalls command: %d\n", Ncalls);
+}
Index: /trunk/Ohana/src/opihi/lib.shell/dvomath.c
===================================================================
--- /trunk/Ohana/src/opihi/lib.shell/dvomath.c	(revision 3900)
+++ /trunk/Ohana/src/opihi/lib.shell/dvomath.c	(revision 3901)
@@ -68,10 +68,8 @@
     case 1:
       MoveVector (vec, stack[0].vector);
-      free (stack[0].vector);
       break;
   
     case 2:
       MoveBuffer (buf, stack[0].buffer);
-      free (stack[0].buffer);
       break;
   }
