Index: trunk/pstamp/scripts/pstamp_checkdependent.pl
===================================================================
--- trunk/pstamp/scripts/pstamp_checkdependent.pl	(revision 34235)
+++ trunk/pstamp/scripts/pstamp_checkdependent.pl	(revision 34238)
@@ -331,9 +331,13 @@
         return $error_code
     }
-    if (($state eq 'update') and ($metadata->{fault})) {
+    if (($data_state eq 'full') and ($metadata->{fault})) {
         # fault dependent.
         my $fault = $metadata->{fault};
         print STDERR "warp $warp_id $skycell_id faulted: $fault";
         return $fault;
+    }
+    if ($metadata->{quality} ne 0) {
+        print STDERR "warp $warp_id $skycell_id bad quality on update: $metadata->{quality}\n";
+        return $PSTAMP_GONE;
     }
 
@@ -466,5 +470,9 @@
                 return $warp_status;
             }
-        }
+        } elsif ($warp1->{quality} != 0) {
+	    print STDERR "warp $warp1->{warp_id} $skycell_id has poor quality: $warp1->{quality}\n";
+	    faultComponent('diff', $diff_id, $skycell_id, $PSTAMP_GONE);
+	    return $PSTAMP_GONE;
+	}
         $command = "$warptool -warped -warp_id $skycell->{warp2} -skycell_id $skycell_id";
         my $warp2 = runToolAndParseExpectOne($command, $verbose);
@@ -477,5 +485,9 @@
                 faultComponent('diff', $diff_id, $skycell_id, $PSTAMP_GONE);
             }
-        }
+        } elsif ($warp2->{quality} != 0) {
+	    print STDERR "warp $warp2->{warp_id} $skycell_id has poor quality: $warp2->{quality}\n";
+	    faultComponent('diff', $diff_id, $skycell_id, $PSTAMP_GONE);
+	    return $PSTAMP_GONE;
+	}
 
         if (!$warps_ready) {
