_control87 hangs in multi-thread

I recently compile some programs in borlandc 5.5 which where working fine in
5.01 and started having several floating point problems.  Here is what
happened.

        Converted from 5.01 5.5 and everthing works fine with the exceptio
n that now i sometimes get Floating point exceptions( Invalid Operation ).

        Changed my libraries to call _control87( MCW_EM, MCW_EM ) to ma
sk all exception.  This worked fine, but then after loading some dynamic lib
raries ( LoadLibrary), which were also built using the same compiler, i s
tarted gettting rounding errors. For example, in printf("%g", 486.0 ) resul
ted in 485.9555??) This only seem to happend in a second thread though.

Next I modified my call to LoadLibrary to be as follows:

        int oldcw = _control87(0,0); // Save control word
        LoadLibrary( ... )
        _control87(0xffff,oldcw);  // Restore control word

Now, i have no foat problems, but on some ocasions, this hangs the thread
which tried to load the library.  It hangs it in such a way that turbo
de{*word*81} can't even interrupt the program.

Does anyone have any idea why the behavior of the floating point is
different in 5.5 or at least a stable work around.  Thanks in advance,
Ilougino Rocha