diff --git a/src/pinner_arm32.cpp b/src/pinner_arm32.cpp
index 806b0b5842dda92d7eeceba61befebce6f46f452..ad21230c9e03c0105c04ea1c971cf45a16fd7530 100644
--- a/src/pinner_arm32.cpp
+++ b/src/pinner_arm32.cpp
@@ -46,9 +46,14 @@ void  ZiprPinnerARM32_t::doPinning()
                 uint8_t bytes[]={'\x00','\x00','\x00',uint8_t('\xea')};
 		for(auto i=0U;i<sizeof(bytes);i++)
 		{
-			assert(memory_space.find(ibta_addr+i) == memory_space.end() );
-			memory_space[ibta_addr+i]=bytes[i];
-			memory_space.splitFreeRange(ibta_addr+i);
+			const auto ibta_byte_addr = ibta_addr+i;
+			if(memory_space.find(ibta_byte_addr) != memory_space.end() )
+			{
+				cout << "Byte is marked as both code and data at: " << hex << ibta_byte_addr << endl;
+				exit(10);
+			}
+			memory_space[ibta_byte_addr]=bytes[i];
+			memory_space.splitFreeRange(ibta_byte_addr);
 		}
 		// insert a patch to patch the branch later.
 		const auto patch=Patch_t(ibta_addr, UnresolvedType_t::UncondJump_rel26);