Index: /trunk/psLib/src/sys/psThread.c
===================================================================
--- /trunk/psLib/src/sys/psThread.c	(revision 20833)
+++ /trunk/psLib/src/sys/psThread.c	(revision 20834)
@@ -254,4 +254,16 @@
 }
 
+// Harvest jobs from the
+static void psThreadJobHarvest(void)
+{
+    psThreadLock();
+    psThreadJob *job;           // Job from done queue
+    while ((job = psThreadJobGetDone())) {
+        psFree(job);
+    }
+    psThreadUnlock();
+    return;
+}
+
 // call this function after you have added jobs to the queue and
 bool psThreadPoolWait(bool harvest)
@@ -273,10 +285,5 @@
         // Harvest jobs, if requested
         if (harvest) {
-            psThreadLock();
-            psThreadJob *job;           // Job from done queue
-            while ((job = psThreadJobGetDone())) {
-                psFree(job);
-            }
-            psThreadUnlock();
+            psThreadJobHarvest();
         }
 
@@ -294,4 +301,8 @@
             // Nothing in the queue
             psThreadUnlock();
+            // Ensure everything is harvested, if requested
+            if (harvest) {
+                psThreadJobHarvest();
+            }
             return true;
         }
