Index: kernel/generic/src/mm/backend_elf.c
===================================================================
--- kernel/generic/src/mm/backend_elf.c	(revision b4dc35ad53a3de037556484bdeca31298c8dc35a)
+++ kernel/generic/src/mm/backend_elf.c	(revision 2c86f81ea61f0b15d29e9a3c90b61a1fa27bfdcb)
@@ -75,4 +75,7 @@
 	size_t nonanon_pages = ALIGN_DOWN(entry->p_filesz, PAGE_SIZE);
 
+	if (entry->p_flags & PF_W)
+		nonanon_pages = 0;
+
 	if (area->pages <= nonanon_pages)
 		return true;
@@ -85,4 +88,7 @@
 	elf_segment_header_t *entry = area->backend_data.segment;
 	size_t nonanon_pages = ALIGN_DOWN(entry->p_filesz, PAGE_SIZE);
+
+	if (entry->p_flags & PF_W)
+		nonanon_pages = 0;
 
 	if (new_pages > area->pages) {
@@ -195,4 +201,7 @@
 	elf_segment_header_t *entry = area->backend_data.segment;
 	size_t nonanon_pages = ALIGN_DOWN(entry->p_filesz, PAGE_SIZE);
+
+	if (entry->p_flags & PF_W)
+		nonanon_pages = 0;
 
 	if (area->pages > nonanon_pages)
