diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
index 631e0d9f2e4021390e41d1a12c765225af4c135c..e6bdbd3a6796a748dc10291c343a059841065cbd 100644
--- a/drivers/net/dm9000.c
+++ b/drivers/net/dm9000.c
@@ -559,6 +559,13 @@ dm9000_probe(struct platform_device *pdev)
 	for (i = 0; i < 6; i++)
 		ndev->dev_addr[i] = db->srom[i];
 
+	if (!is_valid_ether_addr(ndev->dev_addr)) {
+		/* try reading from mac */
+
+		for (i = 0; i < 6; i++)
+			ndev->dev_addr[i] = ior(db, i+DM9000_PAR);
+	}
+
 	if (!is_valid_ether_addr(ndev->dev_addr))
 		printk("%s: Invalid ethernet MAC address.  Please "
 		       "set using ifconfig\n", ndev->name);