Ya está resuelto, aunque me temo que la estrategia que he utilizado sea demasiado pesada... si alguien ve la forma de simplificarlo, adelante ;)