Index: trunk/ippScripts/scripts/magic_destreak.pl
===================================================================
--- trunk/ippScripts/scripts/magic_destreak.pl	(revision 26461)
+++ trunk/ippScripts/scripts/magic_destreak.pl	(revision 26554)
@@ -15,5 +15,5 @@
 
 use IPC::Cmd 0.36 qw( can_run run );
-use File::Temp qw( tempfile );
+use File::Temp qw( tempfile tempdir );
 use File::Basename qw( basename dirname );
 use PS::IPP::Metadata::Config;
@@ -179,4 +179,6 @@
 }
 
+my $temp_dir;
+
 if ($stage ne "camera") {
     # get skycell list if needed
@@ -200,11 +202,21 @@
                     &my_die("Unable to parse metadata list", $magic_ds_id, $component, $PS_EXIT_PROG_ERROR);
 
+            $temp_dir = tempdir( CLEANUP => !$save_temps);
             ($sfh, $skycell_list) = tempfile( "/tmp/skycell_list.XXXX", UNLINK => !$save_temps);
 
             foreach my $skycell (@$skycells) {
-                my $skycell_uri = $ipprc->filename("PPSUB.OUTPUT", $skycell->{path_base});
+                my $skycell_uri;
+                if ($skycell->{data_state} eq "full") {
+                    $skycell_uri = $ipprc->filename("PPSUB.OUTPUT", $skycell->{path_base});
+                } else {
+                    # diff run must have been cleaned up, need to create this skycell file on the fly
+                    my $skycell_id = $skycell->{skycell_id};
+                    $skycell_uri = "$temp_dir/$skycell_id";
+                    $ipprc->skycell_file($skycell->{tess_id}, $skycell_id, $skycell_uri, $verbose) or
+                        &my_die("failed to create skycell file for $skycell_id", $magic_ds_id, $component, $PS_EXIT_PROG_ERROR);
+                }
                 print $sfh "$skycell_uri\n";
             }
-            close $sfh;
+            close $sfh
         }
     }
