modified to eliminate unnecessary buffer allocation
Update CHANGES