--- a/wireless-2.6/drivers/net/wireless/zd1211rw/zd_chip.c	2006-10-23 10:07:39.000000000 -0400
+++ b/wireless-2.6/drivers/net/wireless/zd1211rw/zd_chip.c	2006-10-24 09:39:10.000000000 -0400
@@ -606,12 +606,13 @@ static int patch_6m_band_edge(struct zd_
 		{ CR128, 0x14 }, { CR129, 0x12 }, { CR130, 0x10 },
 		{ CR47,  0x1e },
 	};
+	struct ieee80211_geo *geo = ieee80211_get_geo(zd_mac_to_ieee80211(zd_chip_to_mac(chip)));
 
 	if (!chip->patch_6m_band_edge || !chip->rf.patch_6m_band_edge)
 		return 0;
 
-	/* FIXME: Channel 11 is not the edge for all regulatory domains. */
-	if (channel == 1 || channel == 11)
+	/* Checks the channel boundary of the region */
+	 if (channel == 1 || channel == geo->bg_channels)
 		ioreqs[0].value = 0x12;
 
 	dev_dbg_f(zd_chip_dev(chip), "patching for channel %d\n", channel);
