Merge pull request #2511 from flx42/fix_illegal_mode_changes