diff --git a/src/elrail.cpp b/src/elrail.cpp
index d2a6fcba90..600909c4cf 100644
--- a/src/elrail.cpp
+++ b/src/elrail.cpp
@@ -475,7 +475,6 @@ void DrawCatenary(const TileInfo *ti)
 
 int32 SettingsDisableElrail(int32 p1)
 {
-	EngineID e_id;
 	Vehicle *v;
 	Player *p;
 	bool disable = (p1 != 0);
@@ -485,8 +484,9 @@ int32 SettingsDisableElrail(int32 p1)
 	const RailType new_railtype = disable ? RAILTYPE_RAIL : RAILTYPE_ELECTRIC;
 
 	/* walk through all train engines */
-	for (e_id = 0; e_id < NUM_TRAIN_ENGINES; e_id++) {
-		RailVehicleInfo *rv_info = &_rail_vehicle_info[e_id];
+	EngineID eid;
+	FOR_ALL_ENGINEIDS_OF_TYPE(eid, VEH_TRAIN) {
+		RailVehicleInfo *rv_info = &_rail_vehicle_info[eid];
 		/* if it is an electric rail engine and its railtype is the wrong one */
 		if (rv_info->engclass == 2 && rv_info->railtype == old_railtype) {
 			/* change it to the proper one */
diff --git a/src/engine.cpp b/src/engine.cpp
index 74e581588f..9ef09432d3 100644
--- a/src/engine.cpp
+++ b/src/engine.cpp
@@ -342,10 +342,9 @@ static void NewVehicleAvailable(Engine *e)
 
 void EnginesMonthlyLoop()
 {
-	Engine *e;
-
 	if (_cur_year < YEAR_ENGINE_AGING_STOPS) {
-		for (e = _engines; e != endof(_engines); e++) {
+		Engine *e;
+		FOR_ALL_ENGINES(e) {
 			/* Age the vehicle */
 			if (e->flags & ENGINE_AVAILABLE && e->age != 0xFFFF) {
 				e->age++;
diff --git a/src/oldloader.cpp b/src/oldloader.cpp
index 190824503d..68a07ca2a0 100644
--- a/src/oldloader.cpp
+++ b/src/oldloader.cpp
@@ -1636,7 +1636,8 @@ static bool LoadOldMain(LoadgameState *ls)
 
 	/* Make sure the available engines are really available, otherwise
 	 * we will get a "new vehicle"-spree. */
-	for (Engine *e = _engines; e != endof(_engines); e++) {
+	Engine *e;
+	FOR_ALL_ENGINES(e) {
 		if (_date >= (e->intro_date + 365)) {
 			e->flags = (e->flags & ~ENGINE_EXCLUSIVE_PREVIEW) | ENGINE_AVAILABLE;
 			e->player_avail = (byte)-1;