diff -u jabberd/mio_ssl.c.orig jabberd/mio_ssl.c
--- jabberd/mio_ssl.c.orig	2003-01-29 13:50:38.000000000 +0100
+++ jabberd/mio_ssl.c	2003-01-30 11:30:35.000000000 +0100
@@ -146,6 +146,7 @@
     SSL *ssl=NULL;
     SSL_CTX *ctx = NULL;
     int fd;
+    int flags;
 
     if(m->ip == NULL)
     {
@@ -155,6 +156,10 @@
 
     fd = accept(m->fd, serv_addr, addrlen);
     
+    flags =  fcntl(fd, F_GETFL, 0);
+    flags |= O_NONBLOCK;
+    fcntl(fd, F_SETFL, flags);
+    
     ctx = ghash_get(ssl__ctxs, m->ip);
     if(ctx == NULL)
     {
@@ -162,7 +167,8 @@
         return -1;
     }
     ssl = SSL_new(ctx);
-    log_debug(ZONE, "SSL accepting socket with new session %x", ssl);
+    log_debug(ZONE, "SSL accepting socket from %s with new session %x",
+	m->ip, ssl);
     SSL_set_fd(ssl, fd);
     SSL_set_accept_state(ssl);
     if(SSL_accept(ssl) <= 0){
