diff --git a/websocket-sharp/Server/WebSocketServer.cs b/websocket-sharp/Server/WebSocketServer.cs
index b858f4a6..35498220 100644
--- a/websocket-sharp/Server/WebSocketServer.cs
+++ b/websocket-sharp/Server/WebSocketServer.cs
@@ -956,7 +956,14 @@ namespace WebSocketSharp.Server
         );
       }
 
-      _listener.Start ();
+      try {
+        _listener.Start ();
+      }
+      catch (Exception ex) {
+        var msg = "The underlying listener has failed to start.";
+        throw new InvalidOperationException (msg, ex);
+      }
+
       _receiveThread = new Thread (new ThreadStart (receiveRequest));
       _receiveThread.IsBackground = true;
       _receiveThread.Start ();
@@ -1310,9 +1317,12 @@ namespace WebSocketSharp.Server
     ///   
     ///   There is no certificate in the configuration.
     ///   
-    /// 
-    /// 
-    /// The underlying  has failed to start.
+    ///   
+    ///   -or-
+    ///   
+    ///   
+    ///   The underlying  has failed to start.
+    ///   
     /// 
     public void Start ()
     {