reintroduce a memmove when there is enough misalignment to hold the new data; otherwise the size of the buffer may grow without bounds svn:r857