Index: trunk/Ohana/src/opihi/pantasks/task.c
===================================================================
--- trunk/Ohana/src/opihi/pantasks/task.c	(revision 4602)
+++ trunk/Ohana/src/opihi/pantasks/task.c	(revision 4684)
@@ -14,5 +14,11 @@
   if (N = get_argument (argc, argv, "-list")) {
     remove_argument (N, &argc, argv);
-    ListTasks ();
+    ListTasks (FALSE);
+    return (TRUE);
+  }
+
+  if (N = get_argument (argc, argv, "-longlist")) {
+    remove_argument (N, &argc, argv);
+    ListTasks (TRUE);
     return (TRUE);
   }
@@ -34,5 +40,6 @@
     task = CreateTask (argv[1]);
   }
-  SetCurrentTask (argv[1]);
+  /* temporary task is saved statically 
+     add to list after definition is complete */
 
   /* read in task from appropriate source (keyboard or list) until end */
@@ -71,4 +78,10 @@
 	   have been defined.  delete the task if not */
 	free (input);
+	/* validate the new task: all mandatory elements defined? */ 
+	if (!ValidateTask (task)) {
+	  DeleteNewTask ();
+	  return (FALSE);
+	}
+	RegisterNewTask ();
 	return (TRUE);
 	break;
@@ -92,5 +105,6 @@
     }
   }
-  return (TRUE);
+  /* cannot ever reach here */
+  return (FALSE);
 }
 
