Index: trunk/ippTools/src/warptool.c
===================================================================
--- trunk/ippTools/src/warptool.c	(revision 34766)
+++ trunk/ippTools/src/warptool.c	(revision 34800)
@@ -2059,4 +2059,5 @@
         PXOPT_LOOKUP_S64(magicked, config->args, "-set_magicked", false, false);
 	PXOPT_LOOKUP_S16(quality, config->args, "-set_quality", false, false);
+
         if (magicked) {
             psStringAppend(&set_magicked_skyfile, "\n , warpSkyfile.magicked = %" PRId64, magicked);
@@ -2065,4 +2066,8 @@
 	if (quality) {
 	  psStringAppend(&set_magicked_skyfile, "\n , warpSkyfile.quality = %"PRId16, quality);
+	}
+	PXOPT_LOOKUP_S16(background_model, config->args, "-set_background_model", false, false);
+	if (background_model) {
+	  psStringAppend(&set_magicked_skyfile, "\n , warpSkyfile.background_model = %"PRId16, background_model);
 	}
     } else if (!strcmp(data_state, "cleaned") || !strcmp(data_state, "purged")) {
@@ -2125,6 +2130,22 @@
     // warp_id, skycell_id, fault are required
     PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false);
-
-    if (!state) {
+    PXOPT_LOOKUP_S16(background_model, config->args, "-set_background_model", false, false);
+    if (background_model) {
+      // CZW 2012-12-06: I'm unclear why we don't use this form for all updates?
+      psMetadata *where = psMetadataAlloc();
+      psMetadata *values = psMetadataAlloc();
+      PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "==");
+      PXOPT_COPY_STR(config->args, where, "-skycell_id", "skycell_id", "==");
+      PXOPT_COPY_S16(config->args, values, "-set_background_model", "background_model", "==");
+      long rows = psDBUpdateRows(config->dbh,"warpSkyfile", where, values);
+      psFree(values);
+      psFree(where);
+      if (!rows) {
+	// This maybe should rollback and error if rows != 1
+	psError(PS_ERR_UNKNOWN, true, "no rows changed");
+	return false;
+      }
+    }
+    else if (!state) {
       psMetadata *where = psMetadataAlloc();
       PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "==");
