diff --git a/src/drivers/net/ecm.c b/src/drivers/net/ecm.c
index 826b3b1..68ac962 100644
--- a/src/drivers/net/ecm.c
+++ b/src/drivers/net/ecm.c
@@ -84,24 +84,18 @@
  *
  * @v func		USB function
  * @v desc		Ethernet functional descriptor
- * @v hw_addr		Hardware address to fill in
+ * @v netdev		Network device
  * @ret rc		Return status code
  */
 int ecm_fetch_mac ( struct usb_function *func,
-		    struct ecm_ethernet_descriptor *desc, uint8_t *hw_addr ) {
+		    struct ecm_ethernet_descriptor *desc,
+		    struct net_device *netdev ) {
 	struct usb_device *usb = func->usb;
 	char buf[ base16_encoded_len ( ETH_ALEN ) + 1 /* NUL */ ];
+	uint8_t amac[ETH_ALEN];
 	int len;
 	int rc;
 
-	/* Use system-specific MAC address, if present and not already used */
-	if ( ( ( rc = acpi_mac ( hw_addr ) ) == 0 ) &&
-	     ! find_netdev_by_ll_addr ( &ethernet_protocol, hw_addr ) ) {
-		DBGC ( usb, "USB %s using system-specific MAC %s\n",
-		       func->name, eth_ntoa ( hw_addr ) );
-		return 0;
-	}
-
 	/* Fetch MAC address string */
 	len = usb_get_string_descriptor ( usb, desc->mac, 0, buf,
 					  sizeof ( buf ) );
@@ -118,7 +112,7 @@
 	}
 
 	/* Decode MAC address */
-	len = base16_decode ( buf, hw_addr, ETH_ALEN );
+	len = base16_decode ( buf, netdev->hw_addr, ETH_ALEN );
 	if ( len < 0 ) {
 		rc = len;
 		DBGC ( usb, "USB %s could not decode ECM MAC \"%s\": %s\n",
@@ -126,6 +120,16 @@
 		return rc;
 	}
 
+	/* Apply system-specific MAC address as current link-layer
+	 * address, if present and not already used.
+	 */
+	if ( ( ( rc = acpi_mac ( amac ) ) == 0 ) &&
+	     ! find_netdev_by_ll_addr ( &ethernet_protocol, amac ) ) {
+		memcpy ( netdev->ll_addr, amac, ETH_ALEN );
+		DBGC ( usb, "USB %s using system-specific MAC %s\n",
+		       func->name, eth_ntoa ( netdev->ll_addr ) );
+	}
+
 	return 0;
 }
 
@@ -474,7 +478,7 @@
 	}
 
 	/* Fetch MAC address */
-	if ( ( rc = ecm_fetch_mac ( func, ethernet, netdev->hw_addr ) ) != 0 ) {
+	if ( ( rc = ecm_fetch_mac ( func, ethernet, netdev ) ) != 0 ) {
 		DBGC ( ecm, "ECM %p could not fetch MAC address: %s\n",
 		       ecm, strerror ( rc ) );
 		goto err_fetch_mac;
diff --git a/src/drivers/net/ecm.h b/src/drivers/net/ecm.h
index 0ad3ddb..a7d03cf 100644
--- a/src/drivers/net/ecm.h
+++ b/src/drivers/net/ecm.h
@@ -88,6 +88,6 @@
 			  struct usb_interface_descriptor *interface );
 extern int ecm_fetch_mac ( struct usb_function *func,
 			   struct ecm_ethernet_descriptor *desc,
-			   uint8_t *hw_addr );
+			   struct net_device *netdev );
 
 #endif /* _ECM_H */
diff --git a/src/drivers/net/ncm.c b/src/drivers/net/ncm.c
index 1e8088d..2c0f91e 100644
--- a/src/drivers/net/ncm.c
+++ b/src/drivers/net/ncm.c
@@ -598,7 +598,7 @@
 	}
 
 	/* Fetch MAC address */
-	if ( ( rc = ecm_fetch_mac ( func, ethernet, netdev->hw_addr ) ) != 0 ) {
+	if ( ( rc = ecm_fetch_mac ( func, ethernet, netdev ) ) != 0 ) {
 		DBGC ( ncm, "NCM %p could not fetch MAC address: %s\n",
 		       ncm, strerror ( rc ) );
 		goto err_fetch_mac;
