Woher weisst Du, daß die Function frühzeitig beendet wird?
Vielleicht solltest Du einfach mal debuggen? Also einen Breakpunkt in die erste Zeile dieser Function setzen un dann schrittweise schauen was passiert...
Weil so ist das erst mal ein Ratespiel
Sherlock