diff --git a/epicardium/l0der/l0der.c b/epicardium/l0der/l0der.c
index bf02ad2dcfcb4cd18c7edc7d7510b2927afc5bb6..4521fbf043d18c46ebb21b05c7c9f6da83eee558 100644
--- a/epicardium/l0der/l0der.c
+++ b/epicardium/l0der/l0der.c
@@ -545,7 +545,7 @@ _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);