Index: kernel/generic/src/mm/backend_elf.c
===================================================================
--- kernel/generic/src/mm/backend_elf.c	(revision 5df19638ae7b362a07b4f8c7b1647a3adcb53862)
+++ kernel/generic/src/mm/backend_elf.c	(revision d579acce1df6462929e1e78b004f650a964db913)
@@ -75,4 +75,7 @@
 	.page_fault = elf_page_fault,
 	.frame_free = elf_frame_free,
+
+	.create_shared_data = NULL,
+	.destroy_shared_data = NULL
 };
 
@@ -274,5 +277,6 @@
 	start_anon = entry->p_vaddr + entry->p_filesz;
 
-	if (area->sh_info) {
+	mutex_lock(&area->sh_info->lock);
+	if (area->sh_info->shared) {
 		bool found = false;
 
@@ -281,5 +285,4 @@
 		 */
 		
-		mutex_lock(&area->sh_info->lock);
 		frame = (uintptr_t) btree_search(&area->sh_info->pagemap,
 		    upage - area->base, &leaf);
@@ -384,5 +387,5 @@
 	}
 
-	if (dirty && area->sh_info) {
+	if (dirty && area->sh_info->shared) {
 		frame_reference_add(ADDR2PFN(frame));
 		btree_insert(&area->sh_info->pagemap, upage - area->base,
@@ -390,6 +393,5 @@
 	}
 
-	if (area->sh_info)
-		mutex_unlock(&area->sh_info->lock);
+	mutex_unlock(&area->sh_info->lock);
 
 	page_mapping_insert(AS, upage, frame, as_area_get_flags(area));
