diff --git a/ChemistryLib/PhreeqcKernel.cpp b/ChemistryLib/PhreeqcKernel.cpp
index 614b7a912a9fe70d19b5feb9910a20f8b717310c..b269c854d67686d57351d3bf0876ae27faebf3c9 100644
--- a/ChemistryLib/PhreeqcKernel.cpp
+++ b/ChemistryLib/PhreeqcKernel.cpp
@@ -144,9 +144,7 @@ void PhreeqcKernel::loadDatabase(std::string const& database)
 
 void PhreeqcKernel::reinitializeRates()
 {
-    count_rates = _reaction_rates.size();
-    rates = (struct rate*)realloc(
-        rates, (std::size_t)(count_rates) * sizeof(struct rate));
+    std::vector<struct rate> rates(_reaction_rates.size());
     int rate_id = 0;
     for (auto const& reaction_rate : _reaction_rates)
     {