Then you must have deferred name resolution on. When DNR is enabled, the #temp tables hash includes the context id in which it was created.....when you select from #temp table, you get the one with the closest context id for that #temp table name.....
Soo...if A calls B and B calls C.....C sees B's tables and not A's
...but when C exits and B exits, A would only see A's variations (back to contextID=1)
Without DNR, you get the error I mentioned.