+ if(!t)
+ return;
+
+ TrainRouter *other_router = 0;
+ for(list<SequencePoint>::iterator i=sequence_points.begin(); i!=sequence_points.end(); ++i)
+ if(i->block==&block && i->preceding_train==t)
+ {
+ if(!other_router)
+ other_router = t->get_ai_of_type<TrainRouter>();
+ if(other_router->get_current_sequence()>=i->sequence_in)
+ {
+ i->preceding_train = 0;
+ if(i==sequence_points.begin())
+ train.stop_at(0);
+ }
+ else
+ pending_sequence_checks.push_back(&*i);
+ }
+
+ return;
+ }
+
+ if(!sequence_points.empty())
+ {
+ SequencePoint &sp = sequence_points.front();
+ if(sp.block==&block)