diff --git a/src/nm-device-olpc-mesh.c b/src/nm-device-olpc-mesh.c
index edbba81..8554b95 100644
--- a/src/nm-device-olpc-mesh.c
+++ b/src/nm-device-olpc-mesh.c
@@ -935,12 +935,11 @@ nm_device_olpc_mesh_new (const char *udi,
 
 	g_return_val_if_fail (udi != NULL, NULL);
 	g_return_val_if_fail (iface != NULL, NULL);
-	g_return_val_if_fail (driver != NULL, NULL);
 
 	obj = g_object_new (NM_TYPE_DEVICE_OLPC_MESH,
 	                    NM_DEVICE_INTERFACE_UDI, udi,
 	                    NM_DEVICE_INTERFACE_IFACE, iface,
-	                    NM_DEVICE_INTERFACE_DRIVER, driver,
+	                    NM_DEVICE_INTERFACE_DRIVER, driver ? driver : "usb",
 	                    NM_DEVICE_INTERFACE_MANAGED, managed,
 	                    NULL);
 	if (obj == NULL)
diff --git a/src/nm-device-wifi.c b/src/nm-device-wifi.c
index fdc6f78..53dcd59 100644
--- a/src/nm-device-wifi.c
+++ b/src/nm-device-wifi.c
@@ -3546,12 +3546,11 @@ nm_device_wifi_new (const char *udi,
 
 	g_return_val_if_fail (udi != NULL, NULL);
 	g_return_val_if_fail (iface != NULL, NULL);
-	g_return_val_if_fail (driver != NULL, NULL);
 
 	obj = g_object_new (NM_TYPE_DEVICE_WIFI,
 	                    NM_DEVICE_INTERFACE_UDI, udi,
 	                    NM_DEVICE_INTERFACE_IFACE, iface,
-	                    NM_DEVICE_INTERFACE_DRIVER, driver,
+	                    NM_DEVICE_INTERFACE_DRIVER, driver ? driver : "usb",
 	                    NM_DEVICE_INTERFACE_MANAGED, managed,
 	                    NULL);
 	if (obj == NULL)
