Merge pull request #3091 from rubenk/reduce-allocations