diff --git a/libraries/WiFiS3/src/WiFiServer.cpp b/libraries/WiFiS3/src/WiFiServer.cpp
index c2cbc9abc..4f9cf88ed 100644
--- a/libraries/WiFiS3/src/WiFiServer.cpp
+++ b/libraries/WiFiS3/src/WiFiServer.cpp
@@ -84,7 +84,12 @@ void WiFiServer::end() {
    }
 }
 
+WiFiServer::operator bool()
+{
+   return (_sock != -1);
+}
+
 bool WiFiServer::operator==(const WiFiServer& whs)
 {
        return _sock == whs._sock;
-}
\ No newline at end of file
+}
diff --git a/libraries/WiFiS3/src/WiFiServer.h b/libraries/WiFiS3/src/WiFiServer.h
index 44c5ee1ba..4e2652379 100644
--- a/libraries/WiFiS3/src/WiFiServer.h
+++ b/libraries/WiFiS3/src/WiFiServer.h
@@ -42,6 +42,7 @@ class WiFiServer : public Server {
   virtual size_t write(uint8_t);
   virtual size_t write(const uint8_t *buf, size_t size);
   void end();
+  explicit operator bool();
   virtual bool operator==(const WiFiServer&);
   virtual bool operator!=(const WiFiServer& whs)
   {