diff --git a/drivers/mtd/redboot.c b/drivers/mtd/redboot.c
index 4b277211e27ba48755670cb4d07d2124039145c5..b5259215f6d7f1ffe97ac9cc8edfe8dd1b90d18e 100644
--- a/drivers/mtd/redboot.c
+++ b/drivers/mtd/redboot.c
@@ -110,6 +110,9 @@ static int parse_redboot_partitions(struct mtd_info *master,
 				}
 			}
 			break;
+		} else {
+			/* re-calculate of real numslots */
+			numslots = buf[i].size / sizeof(struct fis_image_desc);
 		}
 	}
 	if (i == numslots) {