Il semaforo fantasma

Ciao a tutti,
vi descrivo questo mio problema sperando che la soluzione possa aiutare anche altre persone.
Provando una mia activity giunti ad un semaforo di protezione, la simulazione si blocca perchè sono passato con il rosso pur essendo il semaforo di protezione verde.
Vado nell'editor e tolgo il semaforo, apro l'activity editor e lo ritrovo lì, sempre rosso mentre nell'editor dello scenario (e nel relativo file world) del segnale non c'è traccia.
Intanto faccio una copia di backup dello scenario.
Per capire quale segnale sia lo pongo failed (sempre nell'activity editor) ed apro il file F01-Leeds-Carlisle_Rain.act dove vado a cercare la parola failed e trovo l'istruzione:

ActivityFailedSignals (
ActivityFailedSignal ( 1002 )
)

Vado nel LeedsSettleCarlisle.tdb (track data base dello scenario) e cerco il segnale 1002:

SignalItem (
TrItemId ( 1002 )
TrItemSData ( 5185.28 00000002 )
TrItemRData ( 757.681 64.3528 427.68 -6097 15042 )
TrSignalType ( 00000000 1 1.76778 UK_nor )
)

facendo confronti tra i vari file capisco che il segnale in questione è nel file world -6097 15042 nella posizione 757.681 64.3528 427.68 ed è di tipo normal.
Apro il file world w-006097+015042.w e cerco altri segnali di tipo normal, per esempio:

Signal (
UiD ( 731 )
FileName ( Sem1c1ala10m.s )
Position ( 304.734 67.2041 540.597 )
QDirection ( 0 -0.777146 0 0.629321 )
VDbId ( 4294967295 )
SignalSubObj ( 00000001 )
SignalUnits ( 1
SignalUnit ( 0
TrItemId ( 0 993 )
)
)
)

copio tutte le righe e le incollo subito sotto.
A questo punto devo modificare le istruzioni per far credere che questo segnale sia quello che prima non appariva nell'editor dello scenario, quindi modifico le righe:

UiD (#) mettendo il numero di UiD più alto trovato nel file .w aumentato di 1
Position(# # #) mettendo le tre coordinate trovate nel file .tdb ovvero 757.681 64.3528 427.68
TrItemId ( 0 # ) dove metto il numero del mio segnale 1002
ovvero:

Signal (
UiD ( 738 )
FileName ( Sem1c1ala10m.s )
Position ( 757.681 64.3528 427.68 )
QDirection ( 0 0.634393 0 0.773011 )
VDbId ( 4294967295 )
SignalSubObj ( 00000001 )
SignalUnits ( 1
SignalUnit ( 0
TrItemId ( 0 1002 )
)
)
)

Salvo il file .w e avvio l'editor dello scenario.
Giunto nel punto, vedo finalmente il semaforo fantasma: lo cancello e salvo di nuovo.
Apro l'activity editor e il semaforo non c'è più.

NOTA:
fino ad ora questo tipo di problemi si potevano risolvere con il "rebuil data track".
Perché questa soluzione macchinosa?
Se faccio il "rebuil data track" perdo una parte dei link dei segnali posati creando non poca confusione dato che devo linkarli nuovamente -e sono tanti- Ecco il perché della soluzione macchinosa.