cudaStreamSynchronize

What am I missing:

I have a program which uses several streams.

Now, if I use cudaStreamSynchronize(myStream) I get wrong results.
If however I replace cudaStreamSynchronize by:

while (cudaStreamQuery(myStream) != cudaSuccess) ;

Everything works ok.

So what am I missing? Could this be a bug? (using version 2.2)