diff --git a/lib/config.py b/lib/config.py
index a4134f55183c322a221b4690f1572ca7e948fe15..e41014ff338648d350b92ed1ee5adac0dddf0183 100644
--- a/lib/config.py
+++ b/lib/config.py
@@ -687,6 +687,12 @@ class ConfigWriter:
       all_lvs = instance.MapLVsByNode()
       logging.info("Instance '%s' DISK_LAYOUT: %s", instance.name, all_lvs)
 
+    all_macs = self._AllMACs()
+    for nic in instance.nics:
+      if nic.mac in all_macs:
+        raise errors.ConfigurationError("Cannot add instance %s:"
+          " MAC address '%s' already in use." % (instance.name, nic.mac))
+
     instance.serial_no = 1
     self._config_data.instances[instance.name] = instance
     self._config_data.cluster.serial_no += 1