A volte mi è successo che dentro qualche funzione con accesso a DB, la funzione usciva perchè c'era una exit function attivata ma l'errore stava che uscendo dalla funzione, mi dimenticavo di fare la close del recordset per cui se c'è una funzione che opera su DB ricorsivamente ed esce per condizione trovata, il set di record rimane aperto se non gli passi la chiusura corretta e se la cosa è ricorsiva puo succedere memoria esaurita...
Non che sia il tuo caso, ma controlla anche le function che accedono a DB...è un suggerimento...
ciao