Index: /trunk/pstamp/scripts/pstampparse.pl
===================================================================
--- /trunk/pstamp/scripts/pstampparse.pl	(revision 29428)
+++ /trunk/pstamp/scripts/pstampparse.pl	(revision 29429)
@@ -805,16 +805,4 @@
 {
     my ($r_jobState, $r_fault, $r_dep_id, $imagedb, $state, $stage, $stage_id, $component, $need_magic) = @_;
-
-    if (($stage ne 'chip') and ($stage ne 'raw')) {
-        # XXX: The update process for warp and subsequent stages requires that destreaking to be performed
-        # because the -pending queries require the inputs to have magicked >= 0
-        # This is too conservative. For example stage is warp and the warp has never been destreaked we don't
-        # need magic either
-        # The case of stack-stack diffs not needing to be destreaked is taken care of in pstamp_checkdependent
-        # maybe we should put all of the smarts there and interpret the need_magic flag in the dependent as
-        # "The client needs to have magic performed" and let
-        # XXX: note the very nasty hard coding of gpc1
-        $need_magic = 1 if $imagedb eq 'gpc1';
-    }
 
     # chipRun's can be in full state if destreaking is necessary
@@ -913,6 +901,7 @@
                     # cause the image to be re-made
                     # set up to queue an update run
+                    my $require_magic = ($need_magic or $image->{magicked});
                     get_dependent(\$$r_newState, \$$r_fault, $r_dep_id, $image->{imagedb}, 
-                        $run_state, $stage, $image->{stage_id}, $image->{component}, $need_magic);
+                        $run_state, $stage, $image->{stage_id}, $image->{component}, $require_magic );
                 }
             }
