Index: /trunk/pstamp/scripts/pstamp_checkdependent.pl
===================================================================
--- /trunk/pstamp/scripts/pstamp_checkdependent.pl	(revision 30734)
+++ /trunk/pstamp/scripts/pstamp_checkdependent.pl	(revision 30735)
@@ -314,4 +314,10 @@
     my $data_state = $metadata->{data_state};
 
+    # The update system currently requires that data that has been magicked be destreaked
+    # at chip stage so it needs magic even if the customer doesn't.
+    if ($metadata->{magicked} != 0) {
+        $need_magic = 1;
+    }
+
     if (($state =~ /error/) or ($state =~ /purged/) or ($state =~ /scrubbed/) or ($state eq 'drop') or
          ($data_state =~ /error/) or ($data_state =~ /purged/) or ($data_state =~ /scrubbed/) or ($data_state eq 'drop')) {
@@ -350,5 +356,11 @@
     foreach my $chip (@$data) {
         $chip_id = $chip->{chip_id};
-        if (($chip->{data_state} ne 'full') or ($need_magic and ($chip->{magicked} <= 0))) {
+        # if chip has been magicked before require it to be magicked again
+
+         if (($chip->{data_state} ne 'full') or ($need_magic or ($chip->{magicked} < 0))) {
+            if ($chip->{magicked} < 0) {
+                print "Input has been destreaked so we must destreak before warping\n";
+                $need_magic = 1 
+            }
             $chips_ready = 0;
             $chip->{fault} = $chip->{chip_fault};
@@ -399,4 +411,10 @@
     my $skycell = $metadata;
     my $skycell_id = $skycell->{skycell_id};
+
+    # The update system currently requires that data that has been magicked be destreaked
+    # at chip stage so it needs magic even if the customer doesn't.
+    if ($metadata->{magicked} != 0) {
+        $need_magic = 1;
+    }
 
     if ($diff_mode == $IPP_DIFF_MODE_WARP_STACK ) {
