Index: trunk/ippTools/share/disttool_pendingfileset.sql
===================================================================
--- trunk/ippTools/share/disttool_pendingfileset.sql	(revision 26005)
+++ trunk/ippTools/share/disttool_pendingfileset.sql	(revision 26015)
@@ -3,8 +3,9 @@
     target_id,
     distRun.stage,
+    distRun.outdir as dist_dir,
     stage_id,
     distTarget.dist_group,
     distTarget.filter,
-    CONCAT_WS('.', distRun.outroot, CONVERT(distRun.dist_id, CHAR)) as dist_dir,
+--    CONCAT_WS('.', distRun.outroot, CONVERT(distRun.dist_id, CHAR)) as dist_dir,
     rcDestination.name AS product_name,
     rcDestination.dest_id,
Index: trunk/ippTools/share/disttool_processedcomponent.sql
===================================================================
--- trunk/ippTools/share/disttool_processedcomponent.sql	(revision 26005)
+++ trunk/ippTools/share/disttool_processedcomponent.sql	(revision 26015)
@@ -5,5 +5,5 @@
     stage_id,
     component,
-    CONCAT_WS('.', outroot, CONVERT(dist_id, CHAR)) as outdir,
+    distComponent.outdir,
     bytes,
     md5sum,
Index: trunk/ippTools/share/pxadmin_create_tables.sql
===================================================================
--- trunk/ippTools/share/pxadmin_create_tables.sql	(revision 26005)
+++ trunk/ippTools/share/pxadmin_create_tables.sql	(revision 26015)
@@ -1344,4 +1344,5 @@
     label       VARCHAR(64),
     outroot     VARCHAR(255),
+    outdir      VARCHAR(255),
     clean       TINYINT,
     no_magic    TINYINT,
@@ -1362,4 +1363,5 @@
     md5sum      VARCHAR(32),
     state       VARCHAR(64),
+    outdir      VARCHAR(255),
     name        VARCHAR(255),
     fault       SMALLINT,
Index: trunk/ippTools/src/disttool.c
===================================================================
--- trunk/ippTools/src/disttool.c	(revision 26005)
+++ trunk/ippTools/src/disttool.c	(revision 26015)
@@ -371,10 +371,11 @@
                 new_label,
                 outroot,
+                NULL,     // outdir
                 clean,
                 no_magic,
                 "new",
-                NULL,   // time_stamp
+                NULL,    // time_stamp
                 0,       // fault
-                set_note    // note does not propagate
+                set_note // note does not propagate
                 );
 
@@ -430,4 +431,5 @@
     PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false);
     PXOPT_LOOKUP_STR(label, config->args, "-set_label", false, false);
+    PXOPT_LOOKUP_STR(outdir, config->args, "-set_outdir", false, false);
     PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false);
 
@@ -440,4 +442,7 @@
     psString query = psStringCopy("UPDATE distRun SET time_stamp = UTC_TIMESTAMP()");
 
+    if (outdir) {
+        psStringAppend(&query, " , outdir = '%s'", outdir);
+    }
     if (state) {
         psStringAppend(&query, " , state = '%s'", state);
@@ -652,7 +657,8 @@
     PXOPT_LOOKUP_S32(bytes, config->args, "-bytes", require_fileinfo, false);
     PXOPT_LOOKUP_STR(md5sum, config->args, "-md5sum", require_fileinfo, false);
+    PXOPT_LOOKUP_STR(outdir, config->args, "-outdir", require_fileinfo, false);
     PXOPT_LOOKUP_STR(name, config->args, "-name", require_fileinfo, false);
 
-    if (!distComponentInsert(config->dbh, dist_id, component, bytes, md5sum, "full", name, fault)) {
+    if (!distComponentInsert(config->dbh, dist_id, component, bytes, md5sum, "full", outdir, name, fault)) {
         psError(PS_ERR_UNKNOWN, false, "database error");
         return false;
Index: trunk/ippTools/src/disttoolConfig.c
===================================================================
--- trunk/ippTools/src/disttoolConfig.c	(revision 26005)
+++ trunk/ippTools/src/disttoolConfig.c	(revision 26015)
@@ -70,4 +70,5 @@
     psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-set_state", 0, "new value for state", NULL);
     psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-set_label", 0, "new value for label", NULL);
+    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-set_outdir", 0, "new value for outdir", NULL);
     psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-stage",     0, "value for stage", NULL);
     psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-state",     0, "value for state", NULL);
@@ -98,4 +99,5 @@
     psMetadataAddS64(addprocessedcomponentArgs, PS_LIST_TAIL, "-dist_id", 0, "define dist_id", 0);
     psMetadataAddStr(addprocessedcomponentArgs, PS_LIST_TAIL, "-component", 0, "define component (required)", NULL);
+    psMetadataAddStr(addprocessedcomponentArgs, PS_LIST_TAIL, "-outdir", 0, "define output directory", NULL);
     psMetadataAddStr(addprocessedcomponentArgs, PS_LIST_TAIL, "-name", 0, "define file name", NULL);
     psMetadataAddS32(addprocessedcomponentArgs, PS_LIST_TAIL, "-bytes", 0, "define file size", 0);
