   }
 
   // Determine if door should move up or down
-  if ( LightCurrent > LightThreshUp || between(ClockThreshDown, Now, ClockThreshUp) ) {
+  if ( DoorPosition != DOOR_POSITION_UP && (
+        ( between(ClockThreshDown, Now, ClockThreshUp) && LightCurrent > LightThreshDown ) ||
+        ( ! between(ClockThreshDown, Now, ClockThreshUp) && LightCurrent > LightThreshUp )
+       )
+    ) {
     
     // See if we could potentially change door position
     // If not, there's nothing else to do here
-    if ( DoorPosition == DOOR_POSITION_UP ) {
-      return;
-    }
+    // if ( DoorPosition == DOOR_POSITION_UP ) {
+    //   return;
+    // }
   
     LightThreshTicks++;
     updateLCD();

      // Done moving door so reset ticks
      LightThreshTicks = 0;
    }
  } else if ( LightCurrent < LightThreshDown || ! between(ClockThreshDown, Now, ClockThreshUp) ) {

    // See if we could potentially change door position
    // If not, there's nothing else to do here

  Serial.print(" totalseconds(Now)=");
  Serial.print(totalseconds(Now), DEC);

  Serial.print(" CurrentMode=");
  Serial.print(prettyMode());

