Hi, when locking the computer using WIN+L on Windows, Emacs is supposed to reset its keyboard hook state. This is done in the function ‘reset_w32_kbdhook_state’ in ‘w32fns.c’, which is called upon receiving the ‘WM_WTSSESSION_CHANGE’ message with the ‘WTS_SESSION_LOCK’ parameter. However, this message is never received, because to receive it, an application must register for session notifications, which Emacs doesn't do. When Emacs can't reset its state, the handling of the windows key is confused after locking and unlocking the computer, but the issue seems to auto-correct when a windows key is pressed again. I didn't observe any real problem with it, but I have not configured any non-default handling of the windows keys in Emacs. It may be different in those cases. Note that while this bug looks like it might be connected to bug#68914, I believe it's a separate issue. The behaviour described there is neither triggered by this bug nor solved by the attached patch. The attached patch rectifies the situation, but to do so, Emacs must be linked with ‘wtsapi32.dll’. I am not sure whether there is a different way of resetting the state that doesn't require the introduction of a new dependency. To receive session notifications, one must provide a window handle, which is fine if Emacs does not run in console mode. I don't know whether it is possible to get these notifications in console Emacs; at least using the console handle didn't work for me. I also noticed that while the keyboard hook is set up in console mode using ‘setup_w32_kbdhook’, there does not seem to be a corresponding call to ‘remove_w32_kbdhook’. Also, in console mode the keyboard hook is always installed, while in GUI Emacs it is only installed when ‘WINDOWSNT’ is defined. I have zero experience in Windows programming, so it would be highly desirable if someone with more knowledge could comment on the issue and my proposed solution. Regards, Raffael