Index: trunk/ippTools/share/pubtool_definerun.sql
===================================================================
--- trunk/ippTools/share/pubtool_definerun.sql	(revision 28309)
+++ trunk/ippTools/share/pubtool_definerun.sql	(revision 28319)
@@ -6,5 +6,5 @@
 FROM (
     -- Get diffs to publish
-    SELECT
+    SELECT DISTINCT
         client_id,
         diff_id AS stage_id,
@@ -12,7 +12,13 @@
     FROM publishClient
     JOIN diffRun
+    JOIN diffInputSkyfile USING(diff_id)
+    JOIN warpRun ON warpRun.warp_id = diffInputSkyfile.warp1 -- Only JOINing input, not reference!
+    JOIN fakeRun USING(fake_id)
+    JOIN camRun USING(cam_id)
+    JOIN chipRun USING(chip_id)
+    JOIN rawExp USING(exp_id)
     WHERE publishClient.stage = 'diff'
         AND publishClient.active = 1
-        AND diffRun.state = 'full'
+        AND diffRun.state IN ('full', 'cleaned', 'goto_cleaned')
         AND (diffRun.magicked > 0 OR diffRun.diff_mode = 4 OR publishClient.magicked = 0)
     -- WHERE hook %s
@@ -25,7 +31,9 @@
     FROM publishClient
     JOIN camRun
+    JOIN chipRun USING(chip_id)
+    JOIN rawExp USING(exp_id)
     WHERE publishClient.stage = 'camera'
         AND publishClient.active = 1
-        AND camRun.state = 'full'
+        AND camRun.state IN ('full', 'cleaned', 'goto_cleaned')
         AND (camRun.magicked > 0 OR publishClient.magicked = 0)
     -- WHERE hook %s
@@ -33,3 +41,2 @@
 -- Only get stuff that hasn't been published
 LEFT JOIN publishRun USING(client_id, stage_id)
-WHERE publishRun.client_id IS NULL
Index: trunk/ippTools/share/pubtool_pending.sql
===================================================================
--- trunk/ippTools/share/pubtool_pending.sql	(revision 28309)
+++ trunk/ippTools/share/pubtool_pending.sql	(revision 28319)
@@ -26,5 +26,5 @@
         AND publishClient.active = 1
         AND publishRun.state = 'new'
-        AND diffRun.state = 'full'
+        AND diffRun.state IN ('full', 'cleaned', 'goto_cleaned')
         AND (diffRun.magicked > 0 OR diffRun.diff_mode = 4 OR publishClient.magicked = 0)
         -- WHERE hook %s
@@ -47,5 +47,5 @@
         AND publishClient.active = 1
         AND publishRun.state ='new'
-        AND camRun.state = 'full'
+        AND camRun.state IN ('full', 'cleaned', 'goto_cleaned')
         AND (camRun.magicked > 0 OR publishClient.magicked = 0)
         -- WHERE hook %s
