diff --git a/drivers/driver-factory.cc b/drivers/driver-factory.cc
index 1577247512eb00371ba16fb21fa67c0567b4e95b..eacf14ffb5b93210d9ff7a27456b75ce7682ecf0 100644
--- a/drivers/driver-factory.cc
+++ b/drivers/driver-factory.cc
@@ -40,6 +40,9 @@ DriverFactory::DumpDrivers() {
 
 void
 DriverFactory::Destroy() {
-    for (auto ii = _drivers.begin() ; ii != _drivers.end() ; ii++ )
-        delete *ii;
+    for (auto ii = _drivers.begin() ; ii != _drivers.end() ; ii++ ) {
+        Driver* del_me = *ii;
+        ii = _drivers.erase(ii);
+        delete del_me;
+    }
 }