One C++ application working fine with UC4 and from UC5 onwards... My application is not working..

Application working :
1. MY Process spawn the dbaccess process using fork and execv() command.
2. Before execv() it creates 2 Pipes for communication with dbaccess
3. Those created Pipes will be duplicated with STDIN and STDERR of dbaccess
4. Through these pipes application communicate with dbaccess and get the output from dbaccess like..
It will send load command through STDIN pipe and it will try to read the output of previous command from STDOUT pipe. Reading of pipe is done using read() function which works in blocked mode so that until dbaccess writes Process will be blocked... like that Proper output will be captured..

Issue:
after UC5 version onwards there is some synchronization problem...
i am getting some thing else in the Pipe instead of actaul output..

If i put some delay in application, it is working Fine...

I am not able to find the why this behavioral difference with new version?

any one could help me out ...