fix race condition

PR: 262
diff --git a/CHANGES b/CHANGES
index dbb70cb..0cfe8ad 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1923,6 +1923,9 @@
 
  Changes between 0.9.6g and 0.9.6h  [xx XXX xxxx]
 
+  *) Fix race condition in SSLv3_client_method().
+     [Bodo Moeller]
+
   *) Reorder cleanup sequence in SSL_CTX_free(): only remove the ex_data after
      the cached sessions are flushed, as the remove_cb() might use ex_data
      contents. Bug found by Sam Varshavchik <mrsam@courier-mta.com>
diff --git a/ssl/s3_clnt.c b/ssl/s3_clnt.c
index 3784e7d..ca15881 100644
--- a/ssl/s3_clnt.c
+++ b/ssl/s3_clnt.c
@@ -178,11 +178,11 @@
 
 	if (init)
 		{
-		init=0;
 		memcpy((char *)&SSLv3_client_data,(char *)sslv3_base_method(),
 			sizeof(SSL_METHOD));
 		SSLv3_client_data.ssl_connect=ssl3_connect;
 		SSLv3_client_data.get_ssl_method=ssl3_get_client_method;
+		init=0;
 		}
 	return(&SSLv3_client_data);
 	}