Pregunta básica: ¿ya consultas en el manual el uso correcto de cada una de las funciones que mencionas?
Es decir, no entiendo la necesidad de hacer tanta cosa ¿es completamente necesario? ¿está fundamentada tu necesidad lógica de hacerlo así?
Como consejo general te sugiero habilitar al máximo el reporte de errores: no vaya siendo que realmente estés cometiendo un error y no te enteras.