Index: trunk/ippTools/share/difftool_definewarpstack_part1.sql
===================================================================
--- trunk/ippTools/share/difftool_definewarpstack_part1.sql	(revision 27722)
+++ trunk/ippTools/share/difftool_definewarpstack_part1.sql	(revision 27723)
@@ -5,4 +5,5 @@
     warpRun.label,
     warpRun.tess_id,
+    warpRun.data_group,
     COUNT(skycell_id) as skycell_count
 FROM warpRun
Index: trunk/ippTools/share/difftool_definewarpwarp_select.sql
===================================================================
--- trunk/ippTools/share/difftool_definewarpwarp_select.sql	(revision 27722)
+++ trunk/ippTools/share/difftool_definewarpwarp_select.sql	(revision 27723)
@@ -3,4 +3,5 @@
     inputWarpRun.tess_id AS tess_id,
     inputRawExp.exp_id AS input_exp_id,
+    inputWarpRun.data_group AS input_data_group,
     -- The following trick pulls out the warp_id that has the smallest distance
     SUBSTRING_INDEX(GROUP_CONCAT(templateWarpRun.warp_id ORDER BY ABS(ASIN(SQRT(POW(SIN(0.5*(inputRawExp.decl - templateRawExp.decl)),2) + COS(inputRawExp.decl) * COS(templateRawExp.decl) * POW(SIN(0.5*(inputRawExp.ra - templateRawExp.ra)),2))))), ',', 1) AS template_warp_id
Index: trunk/ippTools/src/difftool.c
===================================================================
--- trunk/ippTools/src/difftool.c	(revision 27722)
+++ trunk/ippTools/src/difftool.c	(revision 27723)
@@ -1366,5 +1366,4 @@
         }
 
-
         psString filter = psMetadataLookupStr(&mdok, row, "filter");
         if (!mdok) {
@@ -1378,4 +1377,20 @@
             return false;
         }
+
+	psString warp_data_group = psMetadataLookupStr(&mdok, row, "data_group");
+	if (!mdok) {
+	  psError(PXTOOLS_ERR_PROG, false, "warp data_group not found");
+	  psFree(warp2Query);
+	  psFree(stackQuery);
+	  psFree(skycell_query);
+	  if (!psDBRollback(config->dbh)) {
+	    psError(PS_ERR_UNKNOWN, false, "database error");
+	  }
+	  return false;
+	}
+	if (warp_data_group) {
+	  data_group = warp_data_group;
+	}
+	
         if (!p_psDBRunQueryF(config->dbh, skycell_query, stackQuery, warp_id, filter, warp2Query)) {
             psError(PS_ERR_UNKNOWN, false, "database error");
@@ -1739,4 +1754,9 @@
         const char *template = psMetadataLookupStr(NULL, row, "template_warp_id");
         const char *tess_id = psMetadataLookupStr(NULL, row, "tess_id");
+	psString input_data_group = psMetadataLookupStr(NULL, row, "input_data_group");
+	if (input_data_group) {
+	  data_group = input_data_group;
+	}
+
         if (!input_id || !template || !tess_id) {
             psError(PXTOOLS_ERR_PROG, false, "Identifiers not found");
@@ -1749,5 +1769,5 @@
             return false;
         }
-
+	
         diffRunRow *run = diffRunRowAlloc(0,
                                           "reg",
