the call from one module to another one is getting lost.
Since this cannot happen,
When I put the breakpoint at the start of the called program, the control never reaches there.
this should tell you exactly what the problem is.
I cannot count the number of times I've been told by a programmer that the problem is occurring at point X in a program -- only to find when actually debugging the code that the problem occurs at point Y instead. They get blinders on, convinced that they know where the problem is, and not paying any attention to what the computer tells them about the real issue.