Not sure what you mean by session, but, I believe you're just plain wrong here - take a look at
http://www.dotcomsolution.com/dna08.htm by Calvin Hsia. Also, from
http://www.west-wind.com/presentations/aspobjects/ASPObjects.htm: "SP3 and later provides a new multi-threaded runtime that handles thread isolation and does not block simultaneous method calls and it's possible to get unlimited instances of your server to fire up simultaneously. The figure below shows six instances of a component processing simulated slow requests simultaneously. The thread IDs and completion times clearly show that requests run simultaneously." Also, based on using it for the last 4 years and testing in web apps, mtdlls do truly run on multiple threads from a multithreaded client like IIS or C++. I think you're confusing the "single apartment" terminology with what it actually does which is multi-thread requests simultaneously from a multithreaded client without blocking...
>If called from the same session, yes, it will block.
>
>>Wait a minute - calling a .vfp. mtdll from a multi-threaded client(such as IIS) will result in NO blocking. Are you saying it does block on a single thread and another thread will not continue processing??