diff --git a/epicardium/l0der/l0der.c b/epicardium/l0der/l0der.c
index bf02ad2dcfcb4cd18c7edc7d7510b2927afc5bb6..deb55571e3b96fe72c89d96dcc555424035116ef 100644
--- a/epicardium/l0der/l0der.c
+++ b/epicardium/l0der/l0der.c
@@ -545,7 +545,8 @@ _load_pie(int fd, int size, Elf32_Ehdr *hdr, struct l0dable_info *info)
 
 		if (phdr.p_type == PT_LOAD) {
 			// Check alignment request.
-			if ((phdr.p_vaddr % phdr.p_align) != 0) {
+			if ((phdr.p_offset % phdr.p_align) !=
+			    (phdr.p_vaddr % phdr.p_align)) {
 				LOG_ERR("l0der",
 					"_load_pie: phdr %d alignment too strict",
 					i);