69f75e
diff --git a/src/unexelf.c b/src/unexelf.c
69f75e
index d365940..f78f85a 100644
69f75e
--- a/src/unexelf.c
69f75e
+++ b/src/unexelf.c
69f75e
@@ -717,7 +717,14 @@ unexec (const char *new_name, const char *old_name)
69f75e
   old_plt_index = find_section (".plt", old_section_names,
69f75e
 				old_name, old_file_h, old_section_h, 1);
69f75e
   if (old_plt_index != -1)
69f75e
-    if (OLD_SECTION_H (old_plt_index).sh_type != SHT_NOBITS)
69f75e
+    if (OLD_SECTION_H (old_plt_index).sh_type != SHT_NOBITS
69f75e
+       || ((OLD_SECTION_H (old_plt_index).sh_addr
69f75e
+            + OLD_SECTION_H (old_plt_index).sh_size
69f75e
+            != OLD_SECTION_H (old_bss_index).sh_addr)
69f75e
+           && (old_sbss_index == -1
69f75e
+               || (OLD_SECTION_H (old_plt_index).sh_addr
69f75e
+                   + OLD_SECTION_H (old_plt_index).sh_size
69f75e
+                   != OLD_SECTION_H (old_sbss_index).sh_addr))))
69f75e
       old_plt_index = -1;
69f75e
 
69f75e
   if (old_sbss_index == -1 && old_plt_index == -1)