diff --git a/flashrom.c b/flashrom.c
index b9e2b41..135cc3e 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -2430,17 +2430,23 @@
 				    uint8_t *const newcontents, const uint8_t *const oldcontents)
 {
 	const struct flashrom_layout *const layout = get_layout(flashctx);
+	const struct romentry *included;
+	chipoff_t start = 0;
 
-	size_t i;
-	for (i = 0; i < layout->num_entries; ++i) {
-		if (layout->entries[i].included)
-			continue;
-
-		const chipoff_t region_start	= layout->entries[i].start;
-		const chipsize_t region_len	= layout->entries[i].end - layout->entries[i].start + 1;
-
-		memcpy(newcontents + region_start, oldcontents + region_start, region_len);
+	while ((included = layout_next_included_region(layout, start))) {
+		if (included->start > start) {
+			/* copy everything up to the start of this included region */
+			memcpy(newcontents + start, oldcontents + start, included->start - start);
+		}
+		/* skip this included region */
+		start = included->end + 1;
+		if (start == 0)
+			return;
 	}
+
+	/* copy the rest of the chip */
+	const chipsize_t copy_len = flashctx->chip->total_size * 1024 - start;
+	memcpy(newcontents + start, oldcontents + start, copy_len);
 }
 
 /**
diff --git a/layout.c b/layout.c
index e10bb73..5080e3e 100644
--- a/layout.c
+++ b/layout.c
@@ -227,3 +227,21 @@
 
 	return ret;
 }
+
+const struct romentry *layout_next_included_region(
+		const struct flashrom_layout *const l, const chipoff_t where)
+{
+	unsigned int i;
+	const struct romentry *lowest = NULL;
+
+	for (i = 0; i < l->num_entries; ++i) {
+		if (!l->entries[i].included)
+			continue;
+		if (l->entries[i].end < where)
+			continue;
+		if (!lowest || lowest->start > l->entries[i].start)
+			lowest = &l->entries[i];
+	}
+
+	return lowest;
+}
diff --git a/layout.h b/layout.h
index 770224b..5c07407 100644
--- a/layout.h
+++ b/layout.h
@@ -59,5 +59,6 @@
 const struct flashrom_layout *get_layout(const struct flashrom_flashctx *const flashctx);
 
 int process_include_args(struct flashrom_layout *);
+const struct romentry *layout_next_included_region(const struct flashrom_layout *, chipoff_t);
 
 #endif				/* !__LAYOUT_H__ */
