diff --git a/boot/bootutil/src/bootutil_misc.c b/boot/bootutil/src/bootutil_misc.c
index a47fadf..4f41c23 100644
--- a/boot/bootutil/src/bootutil_misc.c
+++ b/boot/bootutil/src/bootutil_misc.c
@@ -198,6 +198,20 @@
     return fap->fa_size - off_from_end;
 }
 
+int
+boot_status_entries(const struct flash_area *fap)
+{
+    switch (fap->fa_id) {
+    case FLASH_AREA_IMAGE_0:
+    case FLASH_AREA_IMAGE_1:
+        return BOOT_STATUS_STATE_COUNT * BOOT_STATUS_MAX_ENTRIES;
+    case FLASH_AREA_IMAGE_SCRATCH:
+        return BOOT_STATUS_STATE_COUNT;
+    default:
+        return BOOT_EBADARGS;
+    }
+}
+
 uint32_t
 boot_status_off(const struct flash_area *fap)
 {
diff --git a/boot/bootutil/src/bootutil_priv.h b/boot/bootutil/src/bootutil_priv.h
index 925e7f3..59f655d 100644
--- a/boot/bootutil/src/bootutil_priv.h
+++ b/boot/bootutil/src/bootutil_priv.h
@@ -99,6 +99,7 @@
     uint8_t key_id);
 
 uint32_t boot_slots_trailer_sz(uint8_t min_write_sz);
+int boot_status_entries(const struct flash_area *fap);
 uint32_t boot_status_off(const struct flash_area *fap);
 int boot_read_swap_state(const struct flash_area *fap,
                          struct boot_swap_state *state);
diff --git a/boot/bootutil/src/loader.c b/boot/bootutil/src/loader.c
index 886c099..1b0a1f0 100644
--- a/boot/bootutil/src/loader.c
+++ b/boot/bootutil/src/loader.c
@@ -393,11 +393,7 @@
     int i;
 
     off = boot_status_off(fap);
-
-    max_entries = BOOT_STATUS_STATE_COUNT;
-    if (fap->fa_id != FLASH_AREA_IMAGE_SCRATCH) {
-        max_entries *= BOOT_STATUS_MAX_ENTRIES;
-    }
+    max_entries = boot_status_entries(fap);
 
     found = 0;
     for (i = 0; i < max_entries; i++) {
