It seems that at some point some important variable initialization was commented out with rather drastic effects.
If you look at the snippet of code from vfh.cc (inside VFH_Class::Setup() ), you can see that 3 variables are not initialized. escapedir does the real damage here as it is meant to be either 1 or -1 (it is multipled with other variables to provide speed) but as it is not initialized it jumps the robot to some very large position when the escape routine is triggered.
386 <<<<<<< vfh.cc
387 // FIXME
388 // Allocate and intialize
389 vfh_Algorithm->Init();
390
391 // initialize some navigation state
392 rotatedir = 1;
393 escapedir = 1;
394 escaping = 0;
395
396 =======
397 >>>>>>> 1.82
398 */
To get around this bug, I have temporarily uncommented those 3 lines in my build. I am not sure what the correct fix is (esp since there is a synchronous mode) so I flagging it up here as a bug to get the right person to do a proper fix.
Thanks.
Looks like this was the result of a bad merge, I think you fix is fine, I have applied it to svn trunk, have a look and confirm it works.