Don't return characters is key is up
Modified: trunk/reactos/subsys/csrss/win32csr/conio.c
Modified: trunk/reactos/subsys/win32k/ntuser/keyboard.c

Modified: trunk/reactos/subsys/csrss/win32csr/conio.c
--- trunk/reactos/subsys/csrss/win32csr/conio.c	2005-01-06 13:58:04 UTC (rev 12852)
+++ trunk/reactos/subsys/csrss/win32csr/conio.c	2005-01-06 15:57:38 UTC (rev 12853)
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
  * reactos/subsys/csrss/win32csr/conio.c
  *
  * Console I/O functions
@@ -1127,7 +1126,7 @@
   if (0 == (Console->Mode & ENABLE_LINE_INPUT)
       || Console->EarlyReturn
       || ('\n' == KeyEventRecord->InputEvent.Event.KeyEvent.uChar.AsciiChar
-          && ! KeyEventRecord->InputEvent.Event.KeyEvent.bKeyDown))
+          && KeyEventRecord->InputEvent.Event.KeyEvent.bKeyDown))
     {
       if ('\n' == KeyEventRecord->InputEvent.Event.KeyEvent.uChar.AsciiChar)
         {

Modified: trunk/reactos/subsys/win32k/ntuser/keyboard.c
--- trunk/reactos/subsys/win32k/ntuser/keyboard.c	2005-01-06 13:58:04 UTC (rev 12852)
+++ trunk/reactos/subsys/win32k/ntuser/keyboard.c	2005-01-06 15:57:38 UTC (rev 12853)
@@ -16,8 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id$
- *
+/*
  * COPYRIGHT:        See COPYING in the top level directory
  * PROJECT:          ReactOS kernel
  * PURPOSE:          Messages
@@ -342,16 +341,23 @@
 			 HKL dwhkl ) {
   int ToUnicodeResult = 0;
 
-  IntLockQueueState;
-  ToUnicodeResult = ToUnicodeInner( wVirtKey,
-				    wScanCode,
-				    lpKeyState,
-				    pwszBuff,
-				    cchBuff,
-				    wFlags,
-				    PsGetWin32Thread() ? 
-				    PsGetWin32Thread()->KeyboardLayout : 0 );
-  IntUnLockQueueState;
+  if (0 == (lpKeyState[wVirtKey] & KS_DOWN_BIT))
+    {
+      ToUnicodeResult = 0;
+    }
+  else
+    {
+      IntLockQueueState;
+      ToUnicodeResult = ToUnicodeInner( wVirtKey,
+				        wScanCode,
+				        lpKeyState,
+				        pwszBuff,
+				        cchBuff,
+				        wFlags,
+				        PsGetWin32Thread() ? 
+				        PsGetWin32Thread()->KeyboardLayout : 0 );
+      IntUnLockQueueState;
+    }
 
   return ToUnicodeResult;
 }