diff --git a/lib/modules/SSL.pmod/cipher.pike b/lib/modules/SSL.pmod/cipher.pike
index a8b9b52e4f2f232a1cedf1e305c1de215dd9750b..edb36ebf0e3b3f61cdb2e4a5192b4e8a9caea96e 100644
--- a/lib/modules/SSL.pmod/cipher.pike
+++ b/lib/modules/SSL.pmod/cipher.pike
@@ -1,4 +1,4 @@
-/* $Id: cipher.pike,v 1.7 1998/01/20 16:11:53 nisse Exp $
+/* $Id: cipher.pike,v 1.8 1998/02/11 05:19:04 nisse Exp $
  *
  */
 
@@ -35,9 +35,17 @@ class mac_sha
 
   string hash_raw(string data)
   {
+#ifdef SSL3_DEBUG
+    werror(sprintf("SSL.cipher: hash_raw('%s')\n", data));
+#endif
+    
     object h = algorithm();
-    h->update(data);
-    return h->digest();
+    string res = h->update(data)->digest();
+#ifdef SSL3_DEBUG
+    werror(sprintf("SSL.cipher: hash_raw->'%s'\n",res));
+#endif
+    
+    return res;
   }
   
   string hash(object packet, object seq_num)
diff --git a/lib/modules/SSL.pmod/handshake.pike b/lib/modules/SSL.pmod/handshake.pike
index b62d351218b5d600f81af0705bb4f84afd5cb93c..9d41bdc631975a84b9ca84112609c12309ea6a69 100644
--- a/lib/modules/SSL.pmod/handshake.pike
+++ b/lib/modules/SSL.pmod/handshake.pike
@@ -1,4 +1,4 @@
-/* $Id: handshake.pike,v 1.5 1997/05/31 22:03:56 grubba Exp $
+/* $Id: handshake.pike,v 1.6 1998/02/11 05:19:05 nisse Exp $
  *
  */
 
@@ -172,6 +172,10 @@ object finished_packet(string sender)
 string server_derive_master_secret(string data)
 {
   string res = "";
+#ifdef SSL3_DEBUG
+  werror(sprintf("server_derive_master_secret: ke_method %d\n",
+		 session->ke_method));
+#endif
   switch(session->ke_method)
   {
   default:
@@ -181,9 +185,13 @@ string server_derive_master_secret(string data)
   case KE_rsa:
    {
      /* Decrypt the pre_master_secret */
+#ifdef SSL3_DEBUG
+     werror(sprintf("encrypted premaster_secret: '%s'\n", data));
+#endif
+     // trace(1);
      string s = context->rsa->decrypt(data);
 #ifdef SSL3_DEBUG
-//     werror(sprintf("premaster_secret: '%s'\n", s));
+     werror(sprintf("premaster_secret: '%O'\n", s));
 #endif
      if (!s || (strlen(s) != 48) || (s[0] != 3))
        return 0;
@@ -399,7 +407,7 @@ int handle_handshake(int type, string data, string raw)
       return -1;
     case HANDSHAKE_client_key_exchange:
 #ifdef SSL3_DEBUG
-//      werror("client_key_exchange\n");
+      werror("client_key_exchange\n");
 #endif
       if (certificate_state == CERT_requested)
       { /* Certificate should be sent before key exchange message */
@@ -410,17 +418,21 @@ int handle_handshake(int type, string data, string raw)
       }
       if (!(session->master_secret = server_derive_master_secret(data)))
       {
+#ifdef SSL3_DEBUG
+	werror("server_derive_master_secret failed!\n");
+#endif
 	send_packet(Alert(ALERT_fatal, ALERT_unexpected_message,
 			  "SSL.session->handle_handshake: unexpected message\n",
 			  backtrace()));
 	return -1;
       }
+      // trace(1);
       array res = session->new_server_states(other_random, my_random);
       pending_read_state = res[0];
       pending_write_state = res[1];
 
 #ifdef SSL3_DEBUG
-//      werror(sprintf("certificate_state: %d\n", certificate_state));
+      werror(sprintf("certificate_state: %d\n", certificate_state));
 #endif
       if (certificate_state != CERT_received)
       {
diff --git a/lib/modules/SSL.pmod/session.pike b/lib/modules/SSL.pmod/session.pike
index 5badc33831d7ee75f0f1f80bfcfe1835b1a18cb7..954327cac1793e99c2c1f0ccff06e69c520a8027 100644
--- a/lib/modules/SSL.pmod/session.pike
+++ b/lib/modules/SSL.pmod/session.pike
@@ -1,4 +1,4 @@
-/* $Id: session.pike,v 1.7 1997/05/31 22:04:00 grubba Exp $
+/* $Id: session.pike,v 1.8 1998/02/11 05:19:06 nisse Exp $
  *
  */
 
@@ -52,7 +52,7 @@ string generate_key_block(string client_random, string server_random)
     i++;
     string cookie = replace(allocate(i), 0, sprintf("%c", 64+i)) * "";
 #ifdef SSL3_DEBUG
-//    werror(sprintf("cookie '%s'\n", cookie));
+    werror(sprintf("cookie '%s'\n", cookie));
 #endif
     key += md5->hash_raw(master_secret +
 			 sha->hash_raw(cookie + master_secret +