Having looked further into it, the current code appears to me to be doing the "right thing" for "w+" and "w". Although its support for "rw" etc is wrong. See table 92 in section 220.127.116.11 in the c++ standard (1998). So I'm not inclined to just revert back. At best it would be just trading my old problem for your new one.
Have you checked to see if you are using a illegal combination of modes.
>From the standard
"If mode is not some combination of flags shown in the table then open fails".
If we really are dealing with incompatible standard libraries, then a unit test to demonstrate the problem would be a good place for you to start. I might be able to spend a little time putting a fix into the vcl layer when I get back.
BTW Please can we keep this on vxl-maintainers. The record keeping is useful even if no-one else gets involved.