Index: /trunk/ippScripts/scripts/nightly_science.pl
===================================================================
--- /trunk/ippScripts/scripts/nightly_science.pl	(revision 30131)
+++ /trunk/ippScripts/scripts/nightly_science.pl	(revision 30132)
@@ -1289,7 +1289,10 @@
     my $pretend = shift;
 
+    my $Npotential = 0;
+    my $Nnoexp     = 0;
     foreach my $target (sort (keys %science_config)) {
 	if ($science_config{$target}{DIFFABLE} == 1) {
 	    foreach my $filter (@filter_list) {
+		$Npotential ++;
 		my ($NprocChips,$NprocWarps) = pre_diff_queue($date,$observing_state,$target,$filter);
 # 		if ((!defined($force_diff_count))&&($NprocChips != $NprocWarps)) {
@@ -1301,4 +1304,5 @@
 #                 }
                 if ($NprocChips == 0) {
+		    $Nnoexp ++;
 		    if ($debug == 1) {
 			print STDERR "execute_diffs: Target $target in filter $filter on $date has no exposures.\n";
@@ -1328,4 +1332,8 @@
         }
     }
+    if (($Npotential == $Nnoexp)&&($metadata_out{nsObservingState} eq 'END_OF_NIGHT')) {
+	$metadata_out{nsDiffState} = 'FINISHED_DIFFS';
+    }	
+
 }
 
Index: /trunk/ippTasks/nightly_science.pro
===================================================================
--- /trunk/ippTasks/nightly_science.pro	(revision 30131)
+++ /trunk/ippTasks/nightly_science.pro	(revision 30132)
@@ -289,4 +289,5 @@
 #
 task              ns.stacks.load
+  active          false
   host            local
   periods         -poll $LOADPOLL
@@ -302,5 +303,5 @@
      book getword nsStacks $date nsStackState -var ns_STATE
      book getword nsDiffs $date nsDiffState -var ns_diff_STATE
-     book getword nsData $date dbname -var $DBNAME
+     book getword nsData $date dbname -var DBNAME
      book npages nsData -var Npages
 
@@ -312,5 +313,4 @@
      if ($ns_stackPAGE >= $Npages) set ns_stackPAGE = 0
      option $date
-     option $ns_diff_STATE
 
      if ("$ns_STATE" != "TOWARP") break
@@ -373,5 +373,5 @@
      book getword nsStacks $date nsStackState -var ns_STATE
      book getword nsDiffs $date nsDiffState -var ns_diff_STATE
-     book getword nsData $date dbname -var $DBNAME
+     book getword nsData $date dbname -var DBNAME
      book npages nsData -var Npages
 
@@ -383,5 +383,5 @@
      if ($ns_RstackPAGE >= $Npages) set ns_RstackPAGE = 0
      option $date
-     option $ns_diff_STATE
+
      if (("$ns_STATE" != "QUEUESTACKS")&&("$ns_STATE" != "TOWARP")&&("$ns_STATE" != "FORCETOWARP")) break
      $run = nightly_science.pl --queue_stacks --date $date --dbname $DBNAME
@@ -440,5 +440,5 @@
      book getpage nsData $ns_CstackPAGE -var date
      book getword nsStacks $date nsStackState -var ns_STATE
-     book getword nsData $date dbname -var $DBNAME
+     book getword nsData $date dbname -var DBNAME
      book npages nsData -var Npages
 
@@ -494,4 +494,5 @@
 #
 task              ns.diffs.load
+  active          false
   host            local
   periods         -poll $LOADPOLL
@@ -507,5 +508,5 @@
      book getword nsDiffs $date nsDiffState -var ns_STATE
      book getword nsStacks $date nsStackState -var ns_stack_STATE
-     book getword nsData $date dbname -var $DBNAME
+     book getword nsData $date dbname -var DBNAME
      book npages nsData -var Npages
 
@@ -575,5 +576,5 @@
      book getword nsDiffs $date nsDiffState -var ns_STATE
      book getword nsStacks $date nsStackState -var ns_stack_STATE
-     book getword nsData $date dbname -var $DBNAME
+     book getword nsData $date dbname -var DBNAME
      book npages nsData -var Npages
 
@@ -585,7 +586,6 @@
      if ($ns_RdiffPAGE >= $Npages) set ns_RdiffPAGE = 0
      option $date
-     option $ns_stack_STATE
-
-     if (("$ns_STATE" != "QUEUEDIFFS")&&("$ns_STATE" != "TOWARP")&&("$ns_STATE" != "FORCETOWARP")) break
+
+     if (("$ns_STATE" != "DIFFING")&&("$ns_STATE" != "QUEUEDIFFS")&&("$ns_STATE" != "TOWARP")&&("$ns_STATE" != "FORCETOWARP")) break
      $run = nightly_science.pl --queue_diffs --date $date --dbname $DBNAME
 #     add_standard_args $run
