Index: trunk/ippToPsps/jython/stackbatch.py
===================================================================
--- trunk/ippToPsps/jython/stackbatch.py	(revision 38906)
+++ trunk/ippToPsps/jython/stackbatch.py	(revision 38939)
@@ -382,5 +382,5 @@
           
             sqlLine.group("a."+filter+"infoFlag3",     "b.flags")
-            sql = sqlLine.makeEquals("WHERE a.objID = b.objID AND b.imageID = " + str(imageID) + " and a." + filter + "ippDetectID=b.ippDetectID")
+            sql = sqlLine.makeEquals("WHERE a.objID = b.objID AND a." + filter + "ippDetectID = b.ippDetectID AND b.imageID = " + str(imageID))
 
             try: self.scratchDb.execute(sql)
@@ -445,4 +445,7 @@
                 self.logger.infoPair("no stack data for filter" , filter) 
                 continue
+
+            imageID = self.imageIDs[filter]
+            self.logger.infoPair("selecting imageID", imageID)
 
             header = self.headerSet[filter]
@@ -511,5 +514,6 @@
             # sqlLine.group("a."+filter+"airmass",       "b.airmass")
 
-            sql = sqlLine.makeEquals("WHERE a.objID = b.objID AND a." + filter + "ippDetectID = b.ippDetectID")
+            # match to the detections from the specific image
+            sql = sqlLine.makeEquals("WHERE a.objID = b.objID AND a." + filter + "ippDetectID = b.ippDetectID AND b.imageID = " + str(imageID))
 
             try:
@@ -580,6 +584,4 @@
         self.deleteRowsWithNoStackData(tablename)
         self.tablesToExport.append(tablename)
-
-
 
         # gippdetectic
@@ -593,11 +595,4 @@
         # ghalfLightRad
 
-
-
-
-
-
-
-
         # currently, none of the fields defined by the table are generated
         
@@ -647,4 +642,7 @@
         header  = self.headerSet[filter]
 
+        imageID = self.imageIDs[filter]
+        self.logger.infoPair("selecting imageID", imageID)
+
         # model calibrated magnitude = instrumental magnitude + 2.5*log10(exptime) + ZP (added below from dvoDetectionTable)
         magtime = "%.5f" % (2.5*math.log10(float(header['EXPTIME'])))
@@ -704,5 +702,6 @@
         sqlLine = sqlUtility("UPDATE " + tablename + " AS a, " + self.scratchDb.dvoDetectionTable + " as b SET")
         sqlLine.group("a." + filter + model + "Mag",       "a." + filter + model + "Mag + b.zp")
-        sql = sqlLine.makeEquals("WHERE a.objID = b.objID AND a." + filter + "ippDetectID = b.ippDetectID" + " AND b.imageID = " + str(self.imageIDs[filter]))
+        sql = sqlLine.makeEquals("WHERE a.objID = b.objID AND a." + filter + "ippDetectID = b.ippDetectID AND b.imageID = " + str(imageID))
+
         try:
             self.scratchDb.execute(sql)
@@ -815,4 +814,7 @@
         header  = self.headerSet[filter]
 
+        imageID = self.imageIDs[filter]
+        self.logger.infoPair("selecting imageID", imageID)
+
         # PETRO_MAG is instrumental + 2.5log(exptime) + FPA.ZP
         # we want to apply the DVO zero point, so remove FPA.ZP:
@@ -847,5 +849,5 @@
         sqlLine = sqlUtility("UPDATE " + tablename + " AS a, " + self.scratchDb.dvoDetectionTable + " as b SET")
         sqlLine.group("a." + filter + "petMag",       "a." + filter + "petMag + b.zp")
-        sql = sqlLine.makeEquals("WHERE a.objID = b.objID AND a." + filter + "ippDetectID = b.ippDetectID")
+        sql = sqlLine.makeEquals("WHERE a.objID = b.objID AND a." + filter + "ippDetectID = b.ippDetectID AND b.imageID = " + str(imageID))
 
         try: self.scratchDb.execute(sql)
@@ -933,4 +935,7 @@
             self.logger.infoPair("no stack data for filter" , filter) 
             return True
+
+        imageID = self.imageIDs[filter]
+        self.logger.infoPair("selecting imageID", imageID)
 
         minRadius = 1
@@ -1032,5 +1037,7 @@
             sqlLine.group(field + "Err",       field + "err" + " * b.zpFactor")
             sqlLine.group(field + "Std",       field + "Std" + " * b.zpFactor")
-        sql = sqlLine.makeEquals("WHERE a.objID = b.objID AND a." + filter + "ippDetectID = b.ippDetectID AND b.imageID = " + str(self.imageIDs[filter]) )
+
+        sql = sqlLine.makeEquals("WHERE a.objID = b.objID AND a." + filter + "ippDetectID = b.ippDetectID AND b.imageID = " + str(imageID))
+
         try: self.scratchDb.execute(sql)
         except:
@@ -1222,5 +1229,5 @@
             raise
 
- # ok, now fill g/r/i/z/yippDetectID using objID and detectID and imge ID
+ # ok, now fill g/r/i/z/yippDetectID using objID and detectID and image ID
 
         for filter in self.filters:
