Nietypowy problem w drzewie genealogicznym

Wycieki pamięci, zawieszanie programu, problemy z kompatybilnością są niczym wobec prawdziwych, życiowych problemów, z którymi muszą borykać się programiści! Znalezione na StackOverflow.com:

Jestem programistą pewnego oprogramowania do tworzenia drzew genealogicznych (napisany w C++ i Qt). Nie miałem żadnych problemów, aż jeden z moich klientów wysłał na skrzynkę pocztową raport z błędem. Problem polega na tym, że ma dwoje dzieci z własną córką i nie może użyć mojego programu z powodu tego błędu.

Te błędy są wynikiem moich różnorakich założeń dotyczących funkcjonowania drzewa genealogicznego (przykładowo, po przejściu cyklu, program zakłada, że X nie może być jednocześnie ojcem i dziadkiem Y).

Jak mogą rozwiązać te problemy bez usuwania wszystkich założeń dotyczących funkcjonowania drzewa genealogicznego?

Jak wy byście rozwiązali ten problem?