diff --git a/NTPClient.cpp b/NTPClient.cpp
index 760e142..58bc539 100755
--- a/NTPClient.cpp
+++ b/NTPClient.cpp
@@ -98,11 +98,15 @@ bool NTPClient::forceUpdate() {
   do {
     delay ( 10 );
     cb = this->_udp->parsePacket();
-    if (timeout > 100) return false; // timeout after 1000 ms
+    if (timeout > 100) {
+      this->_lastUpdateOk = false;
+      return false; // timeout after 1000 ms
+    }
     timeout++;
   } while (cb == 0);
 
   this->_lastUpdate = millis() - (10 * (timeout + 1)); // Account for delay in reading the time
+  this->_lastUpdateOk = true;
 
   this->_udp->read(this->_packetBuffer, NTP_PACKET_SIZE);
 
@@ -123,7 +127,7 @@ bool NTPClient::update() {
     if (!this->_udpSetup || this->_port != NTP_DEFAULT_LOCAL_PORT) this->begin(this->_port); // setup the UDP client if needed
     return this->forceUpdate();
   }
-  return false;   // return false if update does not occur
+  return this->_lastUpdateOk;   // return last sync state
 }
 
 unsigned long NTPClient::getEpochTime() const {
@@ -174,7 +178,12 @@ void NTPClient::setUpdateInterval(unsigned long updateInterval) {
 }
 
 void NTPClient::setPoolServerName(const char* poolServerName) {
-    this->_poolServerName = poolServerName;
+  this->_poolServerName = poolServerName;
+}
+
+void NTPClient::setPoolServerIP(IPAddress poolServerIP) {
+  this->_poolServerName = NULL;
+  this->_poolServerIP = poolServerIP;
 }
 
 void NTPClient::sendNTPPacket() {
diff --git a/NTPClient.h b/NTPClient.h
index b518c28..8e8a591 100755
--- a/NTPClient.h
+++ b/NTPClient.h
@@ -22,6 +22,7 @@ class NTPClient {
 
     unsigned long _currentEpoc    = 0;      // In s
     unsigned long _lastUpdate     = 0;      // In ms
+    bool          _lastUpdateOk   = false;  //
 
     byte          _packetBuffer[NTP_PACKET_SIZE];
 
@@ -44,6 +45,13 @@ class NTPClient {
      */
     void setPoolServerName(const char* poolServerName);
 
+    /**
+     * Set time server IP
+     *
+     * @param poolServerIP
+     */
+    void setPoolServerIP(IPAddress poolServerIP);
+
      /**
      * Set random local port
      */