diff -Nru orinoco-0.13e/hermes_rid.h orinoco-0.13e-rjm/hermes_rid.h
--- orinoco-0.13e/hermes_rid.h	2003-05-12 02:22:27.000000000 -0400
+++ orinoco-0.13e-rjm/hermes_rid.h	2003-07-27 16:02:29.000000000 -0400
@@ -28,6 +28,7 @@
 #define HERMES_RID_CNFWDSADDRESS6		0xFC16
 #define HERMES_RID_CNFMULTICASTPMBUFFERING	0xFC17
 #define HERMES_RID_CNFWEPENABLED_AGERE		0xFC20	/* used */
+#define HERMES_RID_CNFAUTHENTICATION_AGERE	0xFC21  /* used */
 #define HERMES_RID_CNFMANDATORYBSSID_SYMBOL	0xFC21
 #define HERMES_RID_CNFWEPDEFAULTKEYID		0xFC23	/* used */
 #define HERMES_RID_CNFDEFAULTKEY0		0xFC24	/* used */
diff -Nru orinoco-0.13e/orinoco.c orinoco-0.13e-rjm/orinoco.c
--- orinoco-0.13e/orinoco.c	2003-05-12 02:22:27.000000000 -0400
+++ orinoco-0.13e-rjm/orinoco.c	2003-07-27 16:03:37.000000000 -0400
@@ -1129,6 +1129,15 @@
 	switch (priv->firmware_type) {
 	case FIRMWARE_TYPE_AGERE: /* Agere style WEP */
 		if (priv->wep_on) {
+			/* Enable the shared-key authentication. */
+			if (priv->wep_restrict) {
+				auth_flag = 0x2;
+				err = hermes_write_wordrec(hw, USER_BAP,
+							   HERMES_RID_CNFAUTHENTICATION_AGERE,
+							   auth_flag);		
+				if (err)
+					return err;
+			}                        
 			err = hermes_write_wordrec(hw, USER_BAP,
 						   HERMES_RID_CNFTXKEY_AGERE,
 						   priv->tx_key);
@@ -2770,7 +2779,6 @@
 	
 	if (erq->flags & IW_ENCODE_DISABLED)
 		enable = 0;
-	/* Only for Prism2 & Symbol cards (so far) - Jean II */
 	if (erq->flags & IW_ENCODE_OPEN)
 		restricted = 0;
 	if (erq->flags & IW_ENCODE_RESTRICTED)
@@ -2813,13 +2821,10 @@
 		erq->flags |= IW_ENCODE_DISABLED;
 	erq->flags |= index + 1;
 	
-	/* Only for symbol cards - Jean II */
-	if (priv->firmware_type != FIRMWARE_TYPE_AGERE) {
-		if(priv->wep_restrict)
-			erq->flags |= IW_ENCODE_RESTRICTED;
-		else
-			erq->flags |= IW_ENCODE_OPEN;
-	}
+	if(priv->wep_restrict)
+		erq->flags |= IW_ENCODE_RESTRICTED;
+	else
+		erq->flags |= IW_ENCODE_OPEN;
 
 	xlen = le16_to_cpu(priv->keys[index].len);
 
