Reverted changes to completion.  Changes were "more correct" but performance on large buffer was too poor.