--- a/cardsetting.c
+++ b/cardsetting.c
@@ -710,10 +710,25 @@ static int acx1xx_get_station_id(acx_dev
 	u8 *stationID = adev->ie_cmd_buf;;
 	const u8 *paddr;
 	int i, res;
+	const char *prom_addr;
+	char *prom_getenv(const char *name);
 
 	res = acx_interrogate(adev, stationID, ACX1xx_IE_DOT11_STATION_ID);
 	paddr = &stationID[4];
-	for (i = 0; i < ETH_ALEN; i++) {
+	prom_addr = NULL;
+#ifdef CONFIG_VLYNQ
+	prom_addr = prom_getenv("macwlan");
+	if (prom_addr == NULL)
+		prom_addr = prom_getenv("mac_ap");
+#endif
+	if (prom_addr)
+		sscanf(prom_addr, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", adev->dev_addr,
+				adev->dev_addr + 1,
+				adev->dev_addr + 2,
+				adev->dev_addr + 3,
+				adev->dev_addr + 4,
+				adev->dev_addr + 5);
+	else for (i = 0; i < ETH_ALEN; i++) {
 		/* we copy the MAC address (reversed in the card) to
 		 * the netdevice's MAC address, and on ifup it will be
 		 * copied into iwadev->dev_addr */
