change #4018 because gcc can't figure out that valid code is valid