Index: /trunk/ippTools/share/difftool_completed_runs.sql
===================================================================
--- /trunk/ippTools/share/difftool_completed_runs.sql	(revision 25514)
+++ /trunk/ippTools/share/difftool_completed_runs.sql	(revision 25515)
@@ -1,19 +1,16 @@
-SELECT DISTINCT
-    diff_id,
-    all_magicked as magicked
-FROM (
-    SELECT
-        COUNT(diffInputSkyfile.skycell_id), COUNT(diffSkyfile.skycell_id),
-        diffSkyfile.*,
-        SUM(!diffSkyfile.magicked) = 0 as all_magicked
-    FROM diffRun
-    JOIN diffInputSkyfile USING(diff_id)
-    LEFT JOIN diffSkyfile USING(diff_id, skycell_id)
-    WHERE 
-        diffRun.state = 'new'
-    GROUP BY
-        diffInputSkyfile.diff_id
-    HAVING
-        COUNT(diffInputSkyfile.skycell_id) = COUNT(diffSkyfile.skycell_id)
-        AND SUM(diffSkyfile.fault) = 0
-    ) as Foo
+SELECT
+    COUNT(diffInputSkyfile.skycell_id),
+    COUNT(diffSkyfile.skycell_id),
+    diffSkyfile.*,
+    SUM(!diffSkyfile.magicked) = 0 as all_magicked
+FROM diffRun
+JOIN diffInputSkyfile USING(diff_id)
+LEFT JOIN diffSkyfile USING(diff_id, skycell_id)
+WHERE
+    diffRun.state = 'new'
+-- WHERE hook %s
+GROUP BY
+    diffInputSkyfile.diff_id
+HAVING
+    COUNT(diffInputSkyfile.skycell_id) = COUNT(diffSkyfile.skycell_id)
+    AND SUM(diffSkyfile.fault) = 0
Index: /trunk/ippTools/src/difftool.c
===================================================================
--- /trunk/ippTools/src/difftool.c	(revision 25514)
+++ /trunk/ippTools/src/difftool.c	(revision 25515)
@@ -583,7 +583,8 @@
     }
 
+    psString whereString = psStringCopy("");
     if (psListLength(where->list)) {
         psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
-        psStringAppend(&query, " WHERE %s", whereClause);
+        psStringAppend(&whereString, "\n AND %s", whereClause);
         psFree(whereClause);
     }
@@ -599,10 +600,12 @@
     if (!psDBTransaction(config->dbh)) {
         psError(PS_ERR_UNKNOWN, false, "database error");
-        return false;
-    }
-
-    if (!p_psDBRunQuery(config->dbh, query)) {
+        psFree(whereString);
+        return false;
+    }
+
+    if (!p_psDBRunQueryF(config->dbh, query, whereString)) {
         psError(PS_ERR_UNKNOWN, false, "database error");
         psFree(query);
+        psFree(whereString);
         if (!psDBRollback(config->dbh)) {
             psError(PS_ERR_UNKNOWN, false, "database error");
@@ -611,4 +614,5 @@
     }
     psFree(query);
+    psFree(whereString);
 
     psArray *output = p_psDBFetchResult(config->dbh);
