patch from upstream !