Index: trunk/Ohana/src/opihi/lib.shell/evaluate_stack.c
===================================================================
--- trunk/Ohana/src/opihi/lib.shell/evaluate_stack.c	(revision 40485)
+++ trunk/Ohana/src/opihi/lib.shell/evaluate_stack.c	(revision 40487)
@@ -208,9 +208,16 @@
 	  push_error (line);
 
-	  // we need to verify that .name exists for both
-	  if ((stack[i-1].name && strchr(stack[i-1].name, ':')) || (stack[i-2].name && strchr(stack[i-2].name, ':'))) {
+	  int isTrinary = TRUE;
+	  isTrinary = isTrinary && (i >= 2);
+	  // isTrinary = isTrinary && (stack[i - 1] != NULL);
+	  // isTrinary = isTrinary && (stack[i - 2] != NULL);
+	  isTrinary = isTrinary && (stack[i - 1].name != NULL);
+	  isTrinary = isTrinary && (stack[i - 2].name != NULL);
+	  isTrinary = isTrinary && (strchr(stack[i-1].name, ':') || strchr(stack[i-2].name, ':'));
+	  if (isTrinary) {
 	    snprintf (line, 512, "syntax error: invalid operand for binary operation: %s or %s\n(Note that the : in a trinary operation must be protected by spaces)\n", stack[i-1].name, stack[i-2].name);
 	    push_error (line);
 	  }
+
 	  clear_stack (&tmp_stack);
 	  return (FALSE);
