We have corrected this in our source code here.
As far as avoiding the problem, deriving the grid and override OnValidate as below handled it in the sample.
public class MyGridDataBoundGrid : GridDataBoundGrid
{
protected override void OnValidating(CancelEventArgs e)
{
CurrentCell.EndEdit();
e.Cancel |= CurrentCell.IsModified;
}
}