diff --git a/disk/part.c b/disk/part.c
index 64d76e8380690fcc5f9ccb9409ed40a74d72a9d0..30229692fb84c22bdbe0801721a76ccc48a9bf22 100644
--- a/disk/part.c
+++ b/disk/part.c
@@ -489,7 +489,8 @@ int get_device_and_partition(const char *ifname, const char *dev_part_str,
 	disk_partition_t tmpinfo;
 
 	/* If no dev_part_str, use bootdevice environment variable */
-	if (!dev_part_str)
+	if (!dev_part_str || !strlen(dev_part_str) ||
+	    !strcmp(dev_part_str, "-"))
 		dev_part_str = getenv("bootdevice");
 
 	/* If still no dev_part_str, it's an error */