diff --git a/src/arm_ehp.cpp b/src/arm_ehp.cpp
index 5cd61d0a7df2b07de2f0cb819a19039077647dfb..e3817e9e828c089b35addad31f133d8c4ad29723 100644
--- a/src/arm_ehp.cpp
+++ b/src/arm_ehp.cpp
@@ -145,7 +145,7 @@ vector<uint8_t> split_arm_eh_frame_impl_t<ptrsize>::parse_arm_eh_pgm(const uint6
 					break;
 				}
 			default:
-				throw new out_of_range("Unknown personality index: "+ to_string(personality_index));
+				throw out_of_range("Unknown personality index: "+ to_string(personality_index));
 		}
 
 	}
@@ -333,7 +333,7 @@ arm_eh_program_t<ptrsize>::arm_eh_program_t(const vector<uint8_t>&  unwind_pgm)
 			// read uleb128 and sanity check.
 			const auto fail = eh_frame_util_t<ptrsize>::read_uleb128(res,final_pos,unwind_pgm_data,max);
 			if(fail)
-				throw new out_of_range("Unable to read uleb128 in unwind_pgm");
+				throw out_of_range("Unable to read uleb128 in unwind_pgm");
 
 			// calc uleb length and record instructions..
 			const auto uleb_len=final_pos-initial_pos;
@@ -345,7 +345,7 @@ arm_eh_program_t<ptrsize>::arm_eh_program_t(const vector<uint8_t>&  unwind_pgm)
 			unwind_idx+=insn_len;
 		}
 		else
-			throw new out_of_range("Cannot determine arm32 unwind instruction length");
+			throw out_of_range("Cannot determine arm32 unwind instruction length");
 	}
 }