Index: trunk/ppMerge/src/ppMergeSetThreads.c
===================================================================
--- trunk/ppMerge/src/ppMergeSetThreads.c	(revision 18862)
+++ trunk/ppMerge/src/ppMergeSetThreads.c	(revision 18967)
@@ -2,5 +2,7 @@
 
 // "PPMERGE_READOUT_COMBINE", 5
-bool ppMergeThread_pmReadoutCombine (psThreadJob *job) {
+bool ppMergeThread_pmReadoutCombine(const psThreadJob *job)
+{
+    PS_ASSERT_THREAD_JOB_NON_NULL(job, false);
 
     pmReadout *output           = job->args->data[0];
@@ -13,15 +15,17 @@
 
     // after we are done, tell the I/O system that this file group is done
-    fileGroup->busy = false; 
+    fileGroup->busy = false;
     return status;
 }
 
-bool ppMergeThread_pmDarkCombine (psThreadJob *job) {
+bool ppMergeThread_pmDarkCombine(const psThreadJob *job)
+{
+    PS_ASSERT_THREAD_JOB_NON_NULL(job, false);
 
     pmCell *outCell             = job->args->data[0];
     ppMergeFileGroup *fileGroup = job->args->data[1];
-    psScalar *iter     	        = job->args->data[2];
-    psScalar *rej     	        = job->args->data[3];
-    psScalar *maskVal     	= job->args->data[4];
+    psScalar *iter              = job->args->data[2];
+    psScalar *rej               = job->args->data[3];
+    psScalar *maskVal           = job->args->data[4];
 
     bool status = pmDarkCombine(outCell, fileGroup->readouts, iter->data.S32, rej->data.F32, maskVal->data.U8);
@@ -32,5 +36,7 @@
 }
 
-bool ppMergeThread_pmShutterCorrectionGenerate (psThreadJob *job) {
+bool ppMergeThread_pmShutterCorrectionGenerate(const psThreadJob *job)
+{
+    PS_ASSERT_THREAD_JOB_NON_NULL(job, false);
 
     pmReadout *output             = job->args->data[0];
@@ -39,7 +45,7 @@
     psScalar *shutterRef          = job->args->data[3];
     pmShutterCorrectionData *data = job->args->data[4];
-    psScalar *iter     	          = job->args->data[5];
-    psScalar *rej     	          = job->args->data[6];
-    psScalar *maskVal     	  = job->args->data[7];
+    psScalar *iter                = job->args->data[5];
+    psScalar *rej                 = job->args->data[6];
+    psScalar *maskVal             = job->args->data[7];
 
     bool status = pmShutterCorrectionGenerate(output, pattern, fileGroup->readouts, shutterRef->data.F32, data, iter->data.S32, rej->data.F32, maskVal->data.U8);
@@ -50,19 +56,27 @@
 }
 
-bool ppMergeSetThreads () {
+bool ppMergeSetThreads(void)
+{
 
-    psThreadTask *task = NULL;
+    {
+        psThreadTask *task = psThreadTaskAlloc("PPMERGE_READOUT_COMBINE", 5);
+        task->function = &ppMergeThread_pmReadoutCombine;
+        psThreadTaskAdd(task);
+        psFree(task);
+    }
 
-    task = psThreadTaskAlloc ("PPMERGE_READOUT_COMBINE", 5);
-    task->function = &ppMergeThread_pmReadoutCombine;
-    psThreadTaskAdd (task);
+    {
+        psThreadTask *task = psThreadTaskAlloc("PPMERGE_DARK_COMBINE", 5);
+        task->function = &ppMergeThread_pmDarkCombine;
+        psThreadTaskAdd(task);
+        psFree(task);
+    }
 
-    task = psThreadTaskAlloc ("PPMERGE_DARK_COMBINE", 5);
-    task->function = &ppMergeThread_pmDarkCombine;
-    psThreadTaskAdd (task);
-
-    task = psThreadTaskAlloc ("PPMERGE_SHUTTER_CORRECTION", 8);
-    task->function = &ppMergeThread_pmShutterCorrectionGenerate;
-    psThreadTaskAdd (task);
+    {
+        psThreadTask *task = psThreadTaskAlloc("PPMERGE_SHUTTER_CORRECTION", 8);
+        task->function = &ppMergeThread_pmShutterCorrectionGenerate;
+        psThreadTaskAdd(task);
+        psFree(task);
+    }
 
     return true;
