Index: /branches/haf_branches/ppMerge2010/ppMerge/src/ppMergeLoop.c
===================================================================
--- /branches/haf_branches/ppMerge2010/ppMerge/src/ppMergeLoop.c	(revision 29007)
+++ /branches/haf_branches/ppMerge2010/ppMerge/src/ppMergeLoop.c	(revision 29008)
@@ -307,5 +307,5 @@
             psTimerStart("ppMergeLoop");
             for (int numChunk = 0; true; numChunk++) {
-
+	      //int *intVariance =0;
                 bool status = false;
                 fileGroup = ppMergeReadChunk(&status, fileGroups, config, numChunk);
@@ -348,6 +348,9 @@
                       psArrayAdd(job->args, 1, psScalarAlloc(iter, PS_TYPE_S32));
                       psArrayAdd(job->args, 1, psScalarAlloc(rej, PS_TYPE_F32));
-                      psArrayAdd(job->args, 1, psScalarAlloc(maskVal, PS_TYPE_IMAGE_MASK));
-
+                      
+		      psArrayAdd(job->args, 1, psScalarAlloc(maskVal, PS_TYPE_IMAGE_MASK));
+		     
+		      psArrayAdd(job->args, 1, psScalarAlloc(useVariances, PS_TYPE_S8)); 
+		
                       // call: pmDarkCombine(outCell, fileGroup->readouts, iter, rej, maskVal);
                       if (!psThreadJobAddPending(job)) {
Index: /branches/haf_branches/ppMerge2010/ppMerge/src/ppMergeSetThreads.c
===================================================================
--- /branches/haf_branches/ppMerge2010/ppMerge/src/ppMergeSetThreads.c	(revision 29007)
+++ /branches/haf_branches/ppMerge2010/ppMerge/src/ppMergeSetThreads.c	(revision 29008)
@@ -40,6 +40,9 @@
     psScalar *rej               = job->args->data[3];
     psScalar *maskVal           = job->args->data[4];
+    psScalar *useVariances     	= job->args->data[5];
 
-    bool status = pmDarkCombine(outCell, fileGroup->readouts, iter->data.S32, rej->data.F32, maskVal->data.PS_TYPE_IMAGE_MASK_DATA);
+    
+    bool status = pmDarkCombine(outCell, fileGroup->readouts, iter->data.S32, 
+rej->data.F32, maskVal->data.PS_TYPE_IMAGE_MASK_DATA, useVariances->data.S8);
 
     // after we are done, tell the I/O system that this file group is done
@@ -79,5 +82,5 @@
 
     {
-        psThreadTask *task = psThreadTaskAlloc("PPMERGE_DARK_COMBINE", 5);
+        psThreadTask *task = psThreadTaskAlloc("PPMERGE_DARK_COMBINE", 6);
         task->function = &ppMergeThread_pmDarkCombine;
         psThreadTaskAdd(task);
Index: /branches/haf_branches/ppMerge2010/ppMerge/src/ppMergeThreadLauncher.c
===================================================================
--- /branches/haf_branches/ppMerge2010/ppMerge/src/ppMergeThreadLauncher.c	(revision 29007)
+++ /branches/haf_branches/ppMerge2010/ppMerge/src/ppMergeThreadLauncher.c	(revision 29008)
@@ -64,5 +64,5 @@
 	// pmDarkCombine
 	if (!strcmp (job->type, "PPMERGE_DARK_COMBINE")) {
-	    psAssert (job->args->n == 7, "invalid number of arguments to pmDarkCombine");
+	    psAssert (job->args->n == 8, "invalid number of arguments to pmDarkCombine");
 
 	    pmCell *outCell             = job->args->data[0];
@@ -73,6 +73,8 @@
 	    psScalar *rej     	        = job->args->data[5];
 	    psScalar *maskVal     	= job->args->data[6];
-
-	    bool status = pmDarkCombine(outCell, fileGroup->readouts, darkOrdinates, darkNorm, iter->data.S32, rej->data.F32, maskVal->data.PS_TYPE_IMAGE_MASK_DATA);
+	    int *useVariance     	= job->args->data[7];
+	    
+	    fprintf (stderr, "%d test test \n");
+	    bool status = pmDarkCombine(outCell, fileGroup->readouts, darkOrdinates, darkNorm, iter->data.S32, rej->data.F32, maskVal->data.PS_TYPE_IMAGE_MASK_DATA, useVariances);
 	    if (!status) {
 		self->fault = true;
@@ -81,4 +83,6 @@
 	    fileGroup->busy = false;
 	    self->busy = false;  
+	    
+	
 	    continue;
 	}
@@ -86,5 +90,5 @@
 	// pmShutterCorrectionGenerate
 	if (!strcmp (job->type, "PPMERGE_SHUTTER_CORRECTION")) {
-	    psAssert (job->args->n == 7, "invalid number of arguments to pmDarkCombine");
+	    psAssert (job->args->n == 8, "invalid number of arguments to pmDarkCombine");
 
 	    pmReadout *output             = job->args->data[0];
@@ -95,6 +99,7 @@
 	    psScalar *rej     	          = job->args->data[5];
 	    psScalar *maskVal     	  = job->args->data[6];
+	    bool *useVariances     	  = job->args->data[7];
 
-	    bool status = pmShutterCorrectionGenerate(output, NULL, fileGroup->readouts, shutterRef->data.F32, data, iter->data.S32, rej->data.F32, maskVal->data.PS_TYPE_IMAGE_MASK_DATA);
+	    bool status = pmShutterCorrectionGenerate(output, NULL, fileGroup->readouts, shutterRef->data.F32, data, iter->data.S32, rej->data.F32, maskVal->data.PS_TYPE_IMAGE_MASK_DATA, useVariances);
 	    if (!status) {
 		self->fault = true;
