Sans tenir compte de la qualité de ton code, ce que d'autre ont fait auparavant, il y a plusieurs raisons pouvant expliquer le plantage.

On ne connait pas l'object fact.
- contient il un...