diff --git a/src/newgrf_spritegroup.h b/src/newgrf_spritegroup.h
index e6eb4fbcbd..c3753dcfdb 100644
--- a/src/newgrf_spritegroup.h
+++ b/src/newgrf_spritegroup.h
@@ -33,17 +33,6 @@ static inline uint32 GetRegister(uint i)
 	return _temp_store.GetValue(i);
 }
 
-/**
- * Clears the value of a so-called newgrf "register".
- * @param i index of the register
- * @pre i < 0x110
- */
-static inline void ClearRegister(uint i)
-{
-	extern TemporaryStorageArray<int32, 0x110> _temp_store;
-	_temp_store.StoreValue(i, 0);
-}
-
 /* List of different sprite group types */
 enum SpriteGroupType {
 	SGT_REAL,
diff --git a/src/newgrf_station.cpp b/src/newgrf_station.cpp
index 9cdded6204..85277337de 100644
--- a/src/newgrf_station.cpp
+++ b/src/newgrf_station.cpp
@@ -637,9 +637,10 @@ SpriteID GetCustomStationFoundationRelocation(const StationSpec *statspec, BaseS
 	/* callback_param1 == 2 means  we are resolving the foundation sprites. */
 	StationResolverObject object(statspec, st, tile, CBID_NO_CALLBACK, 2, layout | (edge_info << 16));
 
-	ClearRegister(0x100);
 	const SpriteGroup *group = ResolveStation(object);
 	if (group == NULL || group->type != SGT_RESULT) return 0;
+
+	/* Note: SpriteGroup::Resolve zeroes all registers, so register 0x100 is initialised to 0. (compatibility) */
 	return group->GetResult() + GetRegister(0x100);
 }