- pending_train = &train.get_layout().get_train(row.get_param<unsigned>(0));
- pending_block = &get_sensor(row.get_param<unsigned>(1)).get_block();
- executing = false;
+ {
+ Train *other_train = &train.get_layout().get_train(row.get_param<unsigned>(0));
+ Block *block = &get_sensor(row.get_param<unsigned>(1)).get_block();
+ if(block->get_train()!=other_train || block->get_state()<Block::MAYBE_ACTIVE)
+ {
+ pending_train = other_train;
+ pending_block = block;
+ executing = false;
+ }
+ }