fixed upstream merge