Une correction à surveiller dans shape.precede:

Si un point d'intersection est sommet d'une forme, les deux objets
sécants doivent être modifiés avant la forme. Vérifier que cela ne
provoque aucun blocage.
if s2.points(h).pointsur.count = 2 and
s2.points(h).pointsur.getposition(self) <> -1 then
return true
end if