diff --git a/src/arch/x86/image/bzimage.c b/src/arch/x86/image/bzimage.c
index b40bb2d..b15bd55 100644
--- a/src/arch/x86/image/bzimage.c
+++ b/src/arch/x86/image/bzimage.c
@@ -355,10 +355,6 @@
 	size_t offset;
 	size_t pad_len;
 
-	/* Do not include kernel image itself as an initrd */
-	if ( initrd == image )
-		return 0;
-
 	/* Create cpio header for non-prebuilt images */
 	offset = cpio_header ( initrd, &cpio );
 
@@ -406,10 +402,6 @@
 	/* Calculate total loaded length of initrds */
 	for_each_image ( initrd ) {
 
-		/* Skip kernel */
-		if ( initrd == image )
-			continue;
-
 		/* Calculate length */
 		len += bzimage_load_initrd ( image, initrd, UNULL );
 		len = bzimage_align ( len );
diff --git a/src/arch/x86/image/multiboot.c b/src/arch/x86/image/multiboot.c
index 0c85df7..c1c63bc 100644
--- a/src/arch/x86/image/multiboot.c
+++ b/src/arch/x86/image/multiboot.c
@@ -204,10 +204,6 @@
 			break;
 		}
 
-		/* Do not include kernel image itself as a module */
-		if ( module_image == image )
-			continue;
-
 		/* Page-align the module */
 		start = ( ( start + 0xfff ) & ~0xfff );
 
diff --git a/src/core/image.c b/src/core/image.c
index 5a9aebc..b280eb4 100644
--- a/src/core/image.c
+++ b/src/core/image.c
@@ -349,9 +349,8 @@
 	/* Preserve record of any currently-running image */
 	saved_current_image = current_image;
 
-	/* Take out a temporary reference to the image.  This allows
-	 * the image to unregister itself if necessary, without
-	 * automatically freeing itself.
+	/* Take out a temporary reference to the image, so that it
+	 * does not get freed when temporarily unregistered.
 	 */
 	current_image = image_get ( image );
 
@@ -371,6 +370,9 @@
 	/* Record boot attempt */
 	syslog ( LOG_NOTICE, "Executing \"%s\"\n", image->name );
 
+	/* Temporarily unregister the image during its execution */
+	unregister_image ( image );
+
 	/* Try executing the image */
 	if ( ( rc = image->type->exec ( image ) ) != 0 ) {
 		DBGC ( image, "IMAGE %s could not execute: %s\n",
@@ -387,6 +389,10 @@
 			 image->name, strerror ( rc ) );
 	}
 
+	/* Re-register image (unless due to be replaced) */
+	if ( ! image->replacement )
+		register_image ( image );
+
 	/* Pick up replacement image before we drop the original
 	 * image's temporary reference.  The replacement image must
 	 * already be registered, so we don't need to hold a temporary
diff --git a/src/image/script.c b/src/image/script.c
index 2805086..b34df1e 100644
--- a/src/image/script.c
+++ b/src/image/script.c
@@ -197,11 +197,6 @@
 	size_t saved_offset;
 	int rc;
 
-	/* Temporarily de-register image, so that a "boot" command
-	 * doesn't throw us into an execution loop.
-	 */
-	unregister_image ( image );
-
 	/* Preserve state of any currently-running script */
 	saved_offset = script_offset;
 
@@ -212,10 +207,6 @@
 	/* Restore saved state */
 	script_offset = saved_offset;
 
-	/* Re-register image (unless we have been replaced) */
-	if ( ! image->replacement )
-		register_image ( image );
-
 	return rc;
 }
 
diff --git a/src/interface/efi/efi_file.c b/src/interface/efi/efi_file.c
index f2b44fa..6443d56 100644
--- a/src/interface/efi/efi_file.c
+++ b/src/interface/efi/efi_file.c
@@ -240,10 +240,6 @@
 	len = 0;
 	for_each_image ( image ) {
 
-		/* Ignore currently executing image */
-		if ( image == current_image )
-			continue;
-
 		/* Pad to alignment boundary */
 		pad_len = ( ( -reader->pos ) & ( INITRD_ALIGN - 1 ) );
 		if ( pad_len ) {
@@ -1091,7 +1087,7 @@
 	 * instance only if the initrd is non-empty, since Linux does
 	 * not gracefully handle a zero-length initrd.
 	 */
-	load = ( list_is_singular ( &images ) ? NULL : &efi_file_initrd.load );
+	load = ( list_empty ( &images ) ? NULL : &efi_file_initrd.load );
 	if ( ( rc = efi_file_path_install ( &efi_file_initrd_path.vendor.Header,
 					    load ) ) != 0 ) {
 		goto err_initrd;
