Index: branches/eam_branches/ipp-20101205/ppStack/src/ppStackArguments.c
===================================================================
--- branches/eam_branches/ipp-20101205/ppStack/src/ppStackArguments.c	(revision 30010)
+++ branches/eam_branches/ipp-20101205/ppStack/src/ppStackArguments.c	(revision 30011)
@@ -189,6 +189,5 @@
     psMetadataAddStr(arguments, PS_LIST_TAIL, "-temp-mask", 0, "Suffix for temporary masks", NULL);
     psMetadataAddStr(arguments, PS_LIST_TAIL, "-temp-variance", 0, "Suffix for temporary variance maps", NULL);
-    psMetadataAddBool(arguments, PS_LIST_TAIL, "-temp-delete", 0,
-                      "Delete temporary files on completion?", false);
+    psMetadataAddBool(arguments, PS_LIST_TAIL, "-temp-delete", 0, "Delete temporary files on completion?", false);
     psMetadataAddS32(arguments, PS_LIST_TAIL, "-threads", 0, "Number of threads to use", 0);
     psMetadataAddBool(arguments, PS_LIST_TAIL, "-visual", 0, "visualisation", false);
@@ -196,4 +195,21 @@
     if (argc == 1) {
         usage(argv[0], arguments, config);
+    }
+
+    // stack-type : used to define the stack for PSPS
+    if ((N = psArgumentGet (argc, argv, "-stack-type"))) {
+	if (argc <= N+1) {
+	  psErrorStackPrint(stderr, "Expected to see an argument for -stack-type");
+	  exit(PS_EXIT_CONFIG_ERROR);
+	}
+        psArgumentRemove (N, &argc, argv);
+	if (strcasecmp(argv[N], "NIGHTLY_STACK") && strcasecmp(argv[N], "DEEP_STACK") && strcasecmp(argv[N], "IQ_STACK")) {
+	  psErrorStackPrint(stderr, "Invalid option for -stack-type %s (must be one of NIGHTLY_STACK, DEEP_STACK, IQ_STACK)");
+	  exit(PS_EXIT_CONFIG_ERROR);
+	}
+	psMetadataAddStr (arguments, PS_LIST_TAIL, "STACK_TYPE", PS_META_REPLACE, "Stack Type", argv[N]);
+        psArgumentRemove (N, &argc, argv);
+    } else { 
+	psMetadataAddStr (arguments, PS_LIST_TAIL, "STACK_TYPE", PS_META_REPLACE, "Stack Type", "DEEP_STACK");
     }
 
