Index: trunk/ppSub/src/ppSubReadout.c
===================================================================
--- trunk/ppSub/src/ppSubReadout.c	(revision 18920)
+++ trunk/ppSub/src/ppSubReadout.c	(revision 19060)
@@ -57,4 +57,13 @@
     psImage *reference = refRO->image;  // Reference image
     PS_ASSERT_IMAGES_SIZE_EQUAL(input, reference, false);
+
+    int threads = psMetadataLookupS32(NULL, config->arguments, "-threads"); // Number of threads
+    if (threads > 0) {
+        if (!psThreadPoolInit(threads)) {
+            psError(PS_ERR_UNKNOWN, false, "Unable to setup %d threads", threads);
+            return false;
+        }
+        pmSubtractionThreadsInit(inConv, refConv, inRO, refRO);
+    }
 
     // Look up recipe values
@@ -156,4 +165,6 @@
     psFree(optWidths);
 
+    pmSubtractionThreadsFinalize(inConv, refConv, inRO, refRO);
+
     // Add kernel descrption to header
     pmSubtractionKernels *kernels = psMetadataLookupPtr(&mdok, inConv->analysis,
