Index: trunk/Ohana/src/imregister/detrend/output.c
===================================================================
--- trunk/Ohana/src/imregister/detrend/output.c	(revision 70)
+++ trunk/Ohana/src/imregister/detrend/output.c	(revision 73)
@@ -1,4 +1,7 @@
 # include "imregister.h"
 # include "detrend.h"
+
+char *RandomPath (char *dBPath);
+extern double drand48();
 
 int OutputSubset (Match *match, int Nmatch) {
@@ -180,7 +183,13 @@
 int PrintSubset (DetReg *detdata, Match *match, int Nmatch) {
   
-  char *dBPath, *typestr, *filtstr, filename[128];
+  char *dBPath, *Path, *typestr, *filtstr, filename[128];
   char *timestr, *modestr, *ccdstr, ccdinfo[16], ccdformat[16];
   int i, j, Nc;
+  struct timeval now;
+  long A;
+
+  gettimeofday (&now, NULL);
+  A = now.tv_usec + now.tv_sec;
+  srand48 (A);
 
   Nc = strlen (ccds[0]);
@@ -225,13 +234,27 @@
 
     if (output.Select) {
-      fprintf (stdout, "%s/%s\n", dBPath, filename);
-    } else {
-      fprintf (stdout, "%-40s = %19s %7s %6s %6s %s %2d %2d %6.1f  %20s\n", 
+      if (detdata[i].altpath) {
+	Path = RandomPath (dBPath);
+      } else {
+	Path = dBPath;
+      }
+      fprintf (stdout, "%s/%s\n", Path, filename);
+    } else {
+      fprintf (stdout, "%-40s = %19s %7s %6s %6s %s %2d %2d %6.1f  %20s  %1d\n", 
 	       filename, timestr, modestr, typestr, filtstr, ccdstr,
-	       detdata[i].Nentry, detdata[i].Norder, detdata[i].exptime, detdata[i].label);
+	       detdata[i].Nentry, detdata[i].Norder, detdata[i].exptime, detdata[i].label, detdata[i].altpath);
     }
     free (timestr);
   }  
   return (TRUE);
+}
+
+char *RandomPath (char *dBPath) {
+  
+  int N;
+
+  N = (NDetrendAltDB + 0.99)*drand48();
+  if (N == NDetrendAltDB) return (dBPath);
+  return (DetrendAltDB[N]);
 }
 
