Index: /trunk/Ohana/src/opihi/lib.shell/check_stack.c
===================================================================
--- /trunk/Ohana/src/opihi/lib.shell/check_stack.c	(revision 6249)
+++ /trunk/Ohana/src/opihi/lib.shell/check_stack.c	(revision 6250)
@@ -14,12 +14,4 @@
       stack[i].Float = strtod (stack[i].name, &c);
       if (c == stack[i].name + strlen (stack[i].name)) {
-	# if (0)
-	if (Nstack == 1) {
-	  stack[i].type = 'W';
-	} else {
-	  stack[i].ptr   = &(stack[i].Float);
-	  stack[i].type  = 'S';
-	}
-        # endif
 	stack[i].ptr   = &(stack[i].Float);
 	stack[i].type  = 'S';
@@ -71,10 +63,4 @@
       /* this is not a scalar, vector, or matrix.  must be string */
       stack[i].type  = 'W';
-	
-      /* let's not consider this an error 
-      sprintf (line, "unknown object %s", stack[i].name);
-      push_error (line);
-      return (-1); 
-      */
     }
   }
Index: /trunk/Ohana/src/opihi/lib.shell/dvomath.c
===================================================================
--- /trunk/Ohana/src/opihi/lib.shell/dvomath.c	(revision 6249)
+++ /trunk/Ohana/src/opihi/lib.shell/dvomath.c	(revision 6250)
@@ -57,4 +57,5 @@
 
   /* evaluate operations, free stack on error */
+  Ncstack = Nstack;
   if (!evaluate_stack (stack, &Nstack)) {
     if (*size == 1) DeleteVector (vec);
@@ -65,5 +66,10 @@
   switch (*size) {
     case 0:
-      sprintf (outname, "%.12g", stack[0].Float);
+      if (Ncstack == 1) {
+	  /* use exact input work */
+	  sprintf (outname, "%s", stack[0].name);
+      } else {
+	  sprintf (outname, "%.12g", stack[0].Float);
+      }
       break;
 
Index: /trunk/Ohana/src/opihi/lib.shell/evaluate_stack.c
===================================================================
--- /trunk/Ohana/src/opihi/lib.shell/evaluate_stack.c	(revision 6249)
+++ /trunk/Ohana/src/opihi/lib.shell/evaluate_stack.c	(revision 6250)
@@ -22,9 +22,8 @@
   if (*Nstack == 1) {
     if (stack[0].type == 'S') {
-      S_unary (&tmp_stack, &stack[0], "=");
-      move_stack (&stack[0], &tmp_stack);
       return (TRUE);
     }
     if (stack[0].type == 'V') {
+      /* need to make a copy so we set output value? */
       V_unary (&tmp_stack, &stack[0], "=");
       move_stack (&stack[0], &tmp_stack);
@@ -32,4 +31,5 @@
     }
     if (stack[0].type == 'M') {
+      /* need to make a copy so we set output value? */
       M_unary (&tmp_stack, &stack[0], "=");
       move_stack (&stack[0], &tmp_stack);
