Index: trunk/ippScripts/scripts/lap_science.pl
===================================================================
--- trunk/ippScripts/scripts/lap_science.pl	(revision 34311)
+++ trunk/ippScripts/scripts/lap_science.pl	(revision 34313)
@@ -280,27 +280,33 @@
     $warptool_update_cmd   .= " -dbname $dbname " if defined $dbname;
 
-    ($success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
-	run(command => $chiptool_update_cmd, verbose => $verbose);
-    unless ($success) {
-	$error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
-	&my_die("Unable to perform chiptool -setimfiletoupdate: $error_code", $exposure->{exp_id}, $data_group);
-    }
-#     if ($chip_magicDS_id != 0) {    
-# 	($success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
-# 	    run(command => $magicDS_update_cmd, verbose => $verbose);
-# 	unless ($success) {
-# 	    $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
-# 	    &my_die("Unable to perform magicdstool -setfiletoupdate: $error_code", $exposure->{exp_id}, $data_group);
-# 	}
-#     }
-
-    ($success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
-	run(command => $warptool_update_cmd, verbose => $verbose);
-    unless ($success) {
-	$error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
-	&my_die("Unable to perform warptool -setskyfiletoupdate: $error_code", $exposure->{exp_id}, $data_group);
-    }
-    
+    # only need to update the data if the warps are not full
+    if ($warp->{state} ne 'full') { 
+        if ($chip->{state} eq 'cleaned') {
+            ($success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
+                run(command => $chiptool_update_cmd, verbose => $verbose);
+            unless ($success) {
+                $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
+                &my_die("Unable to perform chiptool -setimfiletoupdate: $error_code", $exposure->{exp_id}, $data_group);
+            }
+
+#             if ($chip_magicDS_id != 0) {    
+# 	        ($success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
+# 	            run(command => $magicDS_update_cmd, verbose => $verbose);
+# 	        unless ($success) {
+# 	            $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
+# 	            &my_die("Unable to perform magicdstool -setfiletoupdate: $error_code", $exposure->{exp_id}, $data_group);
+# 	        }
+#             }
+        }
+
+        ($success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
+            run(command => $warptool_update_cmd, verbose => $verbose);
+        unless ($success) {
+            $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
+            &my_die("Unable to perform warptool -setskyfiletoupdate: $error_code", $exposure->{exp_id}, $data_group);
+        }
+    }
     $exposure->{active} = 1;
+
     return($exposure);
 }
@@ -309,4 +315,10 @@
     my $exposure = shift;
     
+    if (S64_IS_NOT_NULL($exposure->{warp_id})) {
+        if ($exposure->{warpRun_state} eq 'full') {
+            # this warp is in full state no need to update it or the chips
+            return 0;
+        }
+    }
     if (S64_IS_NOT_NULL($exposure->{chip_id})) {
 	if (($exposure->{chip_state} eq 'cleaned')||
@@ -762,5 +774,5 @@
 	    }
 	    print "STATUS: Made $Nstacks_made final stacks.\n";
-	    exit($Nstacks_made);
+	    exit(0);
 	    # If this doesn't do anything, we may end up stuck here.  Therefore, we need a more robust test.
 	}
