Index: trunk/pswarp/src/pswarpSetThreads.c
===================================================================
--- trunk/pswarp/src/pswarpSetThreads.c	(revision 18839)
+++ trunk/pswarp/src/pswarpSetThreads.c	(revision 18966)
@@ -3,6 +3,6 @@
 // each thread runs this function, starting a new job when it finished with an old one
 // it is called with a (void *) pointer to its own thread pointer
-bool pswarpThread_pswarpTransformTile (psThreadJob *job) {
-
+bool pswarpThread_pswarpTransformTile(const psThreadJob *job)
+{
     pswarpTransformTileArgs *args = job->args->data[0];
     bool status = pswarpTransformTile (args);
@@ -14,7 +14,8 @@
     psThreadTask *task = NULL;
 
-    task = psThreadTaskAlloc ("PSWARP_TRANSFORM_TILE", 1);
+    task = psThreadTaskAlloc("PSWARP_TRANSFORM_TILE", 1);
     task->function = &pswarpThread_pswarpTransformTile;
-    psThreadTaskAdd (task);
+    psThreadTaskAdd(task);
+    psFree(task);
 
     return true;
