Two diagnostic questions:
1. What happens if you comment out the FunctionA call? Does it go through B & C, or just through B?
2. Does it reach these message boxes in sequence if done as below?
Call Function_A
MsgBox "Done Function_A"
Call Function_B
MsgBox "Done Function_B"
Call Function_C
You might post the entire Function_A to see if something in Function_A is interrupting the module from which the call is made.