--- old/src/share/classes/sun/security/ssl/ClientHandshaker.java	2009-03-05 10:53:34.000000000 +0000
+++ new/src/share/classes/sun/security/ssl/ClientHandshaker.java	2009-03-05 10:53:34.000000000 +0000
@@ -418,7 +418,8 @@
         for (HelloExtension ext : mesg.extensions.list()) {
             ExtensionType type = ext.type;
             if ((type != ExtensionType.EXT_ELLIPTIC_CURVES)
-                    && (type != ExtensionType.EXT_EC_POINT_FORMATS)) {
+                    && (type != ExtensionType.EXT_EC_POINT_FORMATS)
+                    && (type != ExtensionType.EXT_SERVER_NAME)) {
                 fatalSE(Alerts.alert_unsupported_extension,
                     "Server sent an unsupported extension: " + type);
             }
@@ -969,6 +970,7 @@
                     throw new SSLException(
                         "Can't reuse existing SSL client session");
                 }
+                mesg.setServerName(this.getHostSE());
                 mesg.setCipherSuites(new CipherSuiteList(sessionSuite));
                 return mesg;
             }
@@ -980,6 +982,9 @@
                 throw new SSLException("No existing session to resume.");
             }
         }
+        
+        // Put an RFC4366 TLS server name indication extension into ClientHello.
+        mesg.setServerName(this.getHostSE());
 
         //
         // All we have left to do is fill out the cipher suites.
