Added some patches taken from upstream.
