If you are using LabVIEW 6i or 6.0.2 (or possibly even 6.1?), you may have discovered the same bug I discovered earlier this year.
First though, make sure the VI you are calling is reentrant. Reentrancy is supposed to ensure that a VI can run simultaneously with a copy of itself using different data. However; as illustrated below, there may be a bug in LabVIEW that affects this sometimes.
I had a program that called a custom reentrant VI. The VI was NOT treated as reentrant, and 'shared' the data between the two calls. In order to solve the problem, as my subVI was a very quick one, I merely forced dataflow to call the VI sequentially. What I did was put the second call in a single sequence frame, ane wire the output of the first call through th
is sequence frame. This forced the first call to complete before the second call started, which forced unique data.
This is in fact a bug, and I believe I reported it, but may have been too busy to do so.
Give this a shot, and see if it fixes the problem. If so, send in a bug report to NI.