I work on an English version of Windows XP Pro, but my working language is Spanish. My default input language is set to Spanish, but sometimes Windows changes this setting automatically when you switch applications (and thus you get a different keyboard layout).

Why is that?

(I've become a huge fan of ALT + LEFT SHIFT, which lets you cycle through the available languages.)

  • retag as "windows", this is happening on vista too
    – Andrija
    Commented Jul 15, 2009 at 8:59
  • It also happens on 7. Commented Jul 15, 2009 at 9:04

9 Answers 9


The input language settings are per-application. An application which calls a Windows API in order to change the input locale, can set a different keyboard layout, if it is enabled for the user.

Sometimes it also happens, if you accidentally hit the ALT and LEFT-SHIFT keys together. If you don't want to have this behavior, you could "uninstall" all input languages/cultures you don't need in the Control Panel:

Regional and Language Options > Text Services and Input Languages

EDIT: or just check "Turn off advanced text services".

  • 3
    Removing every other language seems too drastic. I've tried ticking "Turn off advanced text services" in the Advanced tab there. Commented Jul 15, 2009 at 9:18
  • where is "Turn off advanced text services" on Vista?
    – Andrija
    Commented Jul 15, 2009 at 19:20
  • 1
    blogs.msdn.com/michkap/archive/2006/12/23/1351269.aspx -> you can't
    – Ant
    Commented Jul 16, 2009 at 16:17
  • 1
    how this answer solves random changes of keyboard? i need to have alt+shift for changing layouts. the problem that language switches "by itself" sometimes. Commented Feb 25, 2011 at 17:47

It most likely happens because you hit that Alt+Shift shortcut key by accident.

Personally I remove all other languages from the language bar AND disable the shortcut key. After I have done that, it has never happend again =)

How to (On Windows Vista, and probably Seven): Right-click the language bar and choose Settings... (or go to Control Panel, Regional and Language Options). Then go to Keyboards and Languages tab and click on Change keyboards..., select the keyboard(s) you don't have and click the Remove button. Go to Language Bar tab and choose Hidden in the Language Bar group box. Go to Advanced Key Settings tab, then in the Hot keys for input languages select Between input languages, click the Change Key Sequence... and choose Not Assigned in both group boxes. Finally hit OK, OK and OK.

  • I'm sure that would work, but it seems too brute-force for a shared workstation! ;-) Commented Jul 15, 2009 at 9:20
  • 4
    Having a single user account for everyone is so '95. ;)
    – macbirdie
    Commented Jul 15, 2009 at 9:58
  • Oh, yeah, right. Somehow I thought that it was a global setting for all users. ·blushes· Commented Jul 15, 2009 at 10:07
  • Also, how often does a computer have more than one keyboard? But I see your point... luckily @macbirdie had a good point as well, so I guess my point still stands :p
    – Svish
    Commented Jul 15, 2009 at 16:52
  • 2
    cant comment as no rep. (sorry) but @Svish - a LOT of people / computers e.g. My UK laptop died two days before trip to USA, I'm a web dev, so I needed a new one the day I landed. So I have USA laptop, but I'm using curly braces, angle brackets etc all the time and don't want to mess my touch typing with switching to USA layout. So when I dock in office I pop in a UK keyboard. But windows / windows apps just flip my choice of layout willy bloody nilly and it drives me up the wall. :( If I set it I want it set. Im the user not the computer I should be in charge of this one really :( Commented Dec 23, 2011 at 15:53

I think the input language is maintained per-application. I'm not sure if there's a way to disable that behavior.


Yes jtbandes, the input language is maintained per application -- in fact per window, because multiple IE browser windows each have their own setting. Windows is known to be very very poor at handling multiple input languages, and can sometimes not even remember the language used inside a single application when switching a lot. I'm Danish, working with English content, on Austrian (German) Windows computers, and I've seen this too often to count.

The best solution I can offer is to choose just one input language and go with that one only.

For me, it means always using a Danish layout because then I can type the German special characters (the DK layout has an ¨ umlaut key) as well as the Danish special characters (which a German layout can't), plus all of the English of course.

The downside may be a suboptimal typing speed in other languages, but at least the keyboard matches Windows' input language all the time. It's very rare that the chosen language actually prevents you from typing what you need.


That happens to me sometimes too, but I think it's just because I've hit Alt+Shift by accident.

It would be good if there was a beep or something to tell you you've done it...


I think keyboard-settings are maintained per application, for example Word may be running with the Spanish language settings but Notepad is configured with the English language.

You might also want to check what language is configured to be the default.


I hate that, yes, some applications have a default

What I do is completely remove them from the Language Bar, and keep only one.

Another thing I hate is to have my keyboard switched from en-Spain/en-LatinAmerica... it breaks the layout!

So I remove them all and keep the one I use.

  • Yes, I removed the English input language too.
    – djeidot
    Commented Jul 15, 2009 at 9:18

I had the same thing a few months ago, it turns out I was accidently pressing a shortcut key for switching languages. I disabled all shortcuts and removed the language toolbar, so that you have to explicitly change language in the control panel. Since then I haven't had it happen.


Detect language automatically option, available in Word and Outlook, detects the language that you are typing and automatically enables the proofing tools for that language.

  1. Open a new document or email message.

  2. On the Review tab, in the Language group, click Language.

  3. Click Set Proofing Language.

  4. In the Language dialog box, select the Detect language automatically check box.

Applies To: Office 2013 Word 2016 Outlook 2016 Word 2013 Outlook 2013 Language Preferences 2013 Word 2010 Outlook 2010 Word 2007 Outlook 2007

Check Word settings for "automatic language detection"

  • Please quote the essential parts of the answer from the reference link(s), as the answer can become invalid if the linked page(s) change.
    – DavidPostill
    Commented Mar 11, 2017 at 23:03
  • Another tip: please read How to reference material written by others. You should block quote text that has been written by some else. See Markdown help. I've fixed it for you this time, but please pay attention to this in future.
    – DavidPostill
    Commented Mar 16, 2017 at 22:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .