diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
index 2d4c4fc1d90053fa6c04785eac027ef0a59d424c..c30935587207a56ce74973c092791a0498b6bdee 100644
--- a/drivers/net/dm9000.c
+++ b/drivers/net/dm9000.c
@@ -1592,10 +1592,15 @@ dm9000_probe(struct platform_device *pdev)
 			ndev->dev_addr[i] = ior(db, i+DM9000_PAR);
 	}
 
-	if (!is_valid_ether_addr(ndev->dev_addr))
+	if (!is_valid_ether_addr(ndev->dev_addr)) {
 		dev_warn(db->dev, "%s: Invalid ethernet MAC address. Please "
 			 "set using ifconfig\n", ndev->name);
 
+		random_ether_addr(ndev->dev_addr);
+		mac_src = "random";
+	}
+
+
 	platform_set_drvdata(pdev, ndev);
 	ret = register_netdev(ndev);