Index: trunk/psphot/src/psphotKronIterate.c
===================================================================
--- trunk/psphot/src/psphotKronIterate.c	(revision 34560)
+++ trunk/psphot/src/psphotKronIterate.c	(revision 35769)
@@ -166,18 +166,31 @@
     }
 
+    fprintf (stderr, "--- starting KRON ---\n");
+
     // We measure the Kron Radius on a smoothed copy of the readout image
     psImage *smoothedImage = NULL;
     if (KRON_SMOOTH) {
+        psTimerStart ("psphot.kron.smooth");
+
         // Build the smoothed source image
         // Replace the subtracted sources
         psphotReplaceAllSourcesReadout(config, view, filerule, index, recipe, false);
+        psLogMsg ("psphot.kron", PS_LOG_INFO, "replaced %ld raw sources %f sec\n", sources->n, psTimerMark ("psphot.kron.smooth"));
+
+        // smoothedImage = psImageCopy(NULL, readout->image, PS_TYPE_F32);
+        // psImageSmooth(smoothedImage, KRON_SMOOTH_SIGMA, KRON_SMOOTH_NSIGMA);
+	
         // Copy the image and smooth
         psTimerStart ("psphot.kron.smooth");
-        smoothedImage = psImageCopy(NULL, readout->image, PS_TYPE_F32);
-        psImageSmooth(smoothedImage, KRON_SMOOTH_SIGMA, KRON_SMOOTH_NSIGMA);
+	bool oldThreads = psImageConvolveSetThreads(true); // Old value of threading in psImageConvolve
+        smoothedImage = psImageSmoothNoMask_Threaded (NULL, readout->image, KRON_SMOOTH_SIGMA, KRON_SMOOTH_NSIGMA, 0.25);
+	psImageConvolveSetThreads(oldThreads);
         psLogMsg ("psphot.kron", PS_LOG_INFO, "smoothed image %f sec\n", psTimerMark ("psphot.kron.smooth"));
 
         // remove the sources
+        psTimerStart ("psphot.kron.smooth");
         psphotRemoveAllSourcesReadout( config, view, filerule, index, recipe, false );
+        psLogMsg ("psphot.kron", PS_LOG_INFO, "removed %ld raw sources %f sec\n", sources->n, psTimerMark ("psphot.kron.smooth"));
+
         // Now subtract smooth versions of the sources from the smoothed image
         psTimerStart ("psphot.kron.smooth.sources");
