Genial! bien pensado.
Bueno, mientras tanto podrías usar un function para analizar que sucede dentro.
De todas maneras:
en que estas programando VB o C#?
en que momento se cae la aplicación ?
el parámetro que pasas esa "segunda vez" tiene algún contenido o esta vacío ?
no habrá algún problema de tipos entre las variables que usas y los commands ?
Sigo pensando
Saludos