diff -ur kaffe-1.1.6.orig/libraries/javalib/org/metastatic/jessie/provider/SSLSocket.java kaffe-1.1.6/libraries/javalib/org/metastatic/jessie/provider/SSLSocket.java
--- kaffe-1.1.6.orig/libraries/javalib/org/metastatic/jessie/provider/SSLSocket.java	2005-09-20 04:07:58.000000000 +0200
+++ kaffe-1.1.6/libraries/javalib/org/metastatic/jessie/provider/SSLSocket.java	2005-10-10 16:27:10.615169128 +0200
@@ -2868,18 +2868,18 @@
             HashMap attr = new HashMap();
             writeMac = CipherSuite.getMac(suite.getMac());
             readMac  = CipherSuite.getMac(suite.getMac());
-            attr.put(IMac.MAC_KEY_MATERIAL, keys[0]);
-            ((IMac) writeMac).init(attr);
             attr.put(IMac.MAC_KEY_MATERIAL, keys[1]);
+            ((IMac) writeMac).init(attr);
+            attr.put(IMac.MAC_KEY_MATERIAL, keys[0]);
             ((IMac) readMac).init(attr);
             if (suite.getCipher() == "RC4")
               {
                 writeCipher = new ARCFour();
                 readCipher = new ARCFour();
                 attr.clear();
-                attr.put(ARCFour.ARCFOUR_KEY_MATERIAL, keys[2]);
-                ((ARCFour) writeCipher).init(attr);
                 attr.put(ARCFour.ARCFOUR_KEY_MATERIAL, keys[3]);
+                ((ARCFour) writeCipher).init(attr);
+                attr.put(ARCFour.ARCFOUR_KEY_MATERIAL, keys[2]);
                 ((ARCFour) readCipher).init(attr);
               }
             else if (!suite.isStreamCipher())
@@ -2887,12 +2887,12 @@
                 writeCipher = CipherSuite.getCipher(suite.getCipher());
                 readCipher = CipherSuite.getCipher(suite.getCipher());
                 attr.clear();
-                attr.put(IMode.KEY_MATERIAL, keys[2]);
-                attr.put(IMode.IV, keys[4]);
-                attr.put(IMode.STATE, new Integer(IMode.ENCRYPTION));
-                ((IMode) writeCipher).init(attr);
                 attr.put(IMode.KEY_MATERIAL, keys[3]);
                 attr.put(IMode.IV, keys[5]);
+                attr.put(IMode.STATE, new Integer(IMode.ENCRYPTION));
+                ((IMode) writeCipher).init(attr);
+                attr.put(IMode.KEY_MATERIAL, keys[2]);
+                attr.put(IMode.IV, keys[4]);
                 attr.put(IMode.STATE, new Integer(IMode.DECRYPTION));
                 ((IMode) readCipher).init(attr);
               }
@@ -2903,23 +2903,23 @@
             readMac = CipherSuite.getJCEMac (suite.getMac());
             writeCipher = CipherSuite.getJCECipher (suite.getCipher());
             readCipher = CipherSuite.getJCECipher (suite.getCipher());
-            ((Mac) writeMac).init (new SecretKeySpec (keys[0], suite.getMac()));
-            ((Mac) readMac).init (new SecretKeySpec (keys[1], suite.getMac()));
+            ((Mac) writeMac).init (new SecretKeySpec (keys[1], suite.getMac()));
+            ((Mac) readMac).init (new SecretKeySpec (keys[0], suite.getMac()));
             if (!suite.isStreamCipher())
               {
                 ((Cipher) writeCipher).init (Cipher.ENCRYPT_MODE,
-                                             new SecretKeySpec (keys[2], suite.getCipher()),
-                                             new IvParameterSpec (keys[4]));
+                                             new SecretKeySpec (keys[3], suite.getCipher()),
+                                             new IvParameterSpec (keys[5]));
                 ((Cipher) readCipher).init (Cipher.DECRYPT_MODE,
-                                            new SecretKeySpec (keys[3], suite.getCipher()),
-                                            new IvParameterSpec (keys[5]));
+                                            new SecretKeySpec (keys[2], suite.getCipher()),
+                                            new IvParameterSpec (keys[4]));
               }
             else
               {
                 ((Cipher) writeCipher).init (Cipher.ENCRYPT_MODE,
-                                             new SecretKeySpec (keys[2], suite.getCipher()));
+                                             new SecretKeySpec (keys[3], suite.getCipher()));
                 ((Cipher) readCipher).init (Cipher.DECRYPT_MODE,
-                                            new SecretKeySpec (keys[3], suite.getCipher()));
+                                            new SecretKeySpec (keys[2], suite.getCipher()));
               }
           }
       }
