diff --git a/irdb-libs/ir_builders/fill_in_indtargs.cpp b/irdb-libs/ir_builders/fill_in_indtargs.cpp
index 03fa1cab17aba614e6be8f4876ab20439beda7c1..93d0b963d1cd4535c67f3d6f6ea745f364f93337 100644
--- a/irdb-libs/ir_builders/fill_in_indtargs.cpp
+++ b/irdb-libs/ir_builders/fill_in_indtargs.cpp
@@ -4010,9 +4010,12 @@ void fill_in_indtargs(FileIR_t* firp, exeio* exeiop, int64_t do_unpin_opt)
 	/* mark the entry point as a target */
 	possible_target(exeiop->get_entry(),0,ibt_provenance_t::ibtp_entrypoint); 
 
-	/* Read the exception handler frame so that those indirect branches are accounted for */
-	/* then now process the ranges and mark IBTs as necessarthat have exception handling */
-        read_ehframe(firp, exeiop);
+	/* Read the exception handler frame so that those indirect branches are accounted for 
+	 * then now process the ranges and mark IBTs as necessarthat have exception handling.
+	 * But skip it if we are going to read the EH info into the IR.
+	 */
+	if(!split_eh_frame_opt)
+        	read_ehframe(firp, exeiop);
 	process_ranges(firp);
 	
 	/* now, find the .GOT addr and process any pc-rel things for x86-32 ibts. */