     
     //the first time we identify our location, calculate the time zone offset
     if (!locationFound && gps.location.isValid()) {
+        locationFound = true;
         Serial.println("loop: first location lock");
         //based on our location, determine our GMT offset, and whether our location uses DST
         setTimeZoneAndDST(gps.location.lat(), gps.location.lng());
-        locationFound = true;
         //stop blinking the display
         sevenSegmentDisplay.blinkRate(0);
         //set up sync provider for Time.h
         setSyncProvider(gpsTimeSync);
         setSyncInterval(GPS_TIME_UPDATE_INTERVAL_SECS);
         setTime(gpsTimeSync());
+        delay(10);
     }
 
     readSwitchesUpdateAlarmTime();

    Serial.print(alarmHour);
    Serial.print(" alarmMin: ");
    Serial.print(alarmMin);
    Serial.print(" alarmAMPM: ");
    Serial.print(alarmAMPM);
    Serial.print(" currentlyAlarming: ");
    Serial.print(currentlyAlarming);
    Serial.println();

            currentMode = LCDTime;
            digitalClockSerialDisplay();
            writeTimeDisplay(alarmHour,alarmMin,true);
    }

#ifdef DEBUG_PRINT_LOOP_SPEED
