diff --git a/src/orca/input_event.py b/src/orca/input_event.py
index 962c1d9..e959c54 100644
--- a/src/orca/input_event.py
+++ b/src/orca/input_event.py
@@ -31,6 +31,10 @@ __license__   = "LGPL"
 
 import debug
 import settings
+try:
+    import gtk.gdk as gdk
+except:
+    pass
 import time
 
 KEYBOARD_EVENT     = "keyboard"
@@ -81,10 +85,15 @@ class KeyboardEvent(InputEvent):
                           & settings.ALL_BUT_NUMLOCK_MODIFIER_MASK
 
         InputEvent.__init__(self, KEYBOARD_EVENT)
+        self.id = event.id
         self.type = event.type
         self.hw_code = event.hw_code
         self.modifiers = event.modifiers
         self.event_string = event_string
+        try:
+            self.keyval_name = gdk.keyval_name(event.id)
+        except:
+            self.keyval_name = ""
         self.is_text = event.is_text
         self.time = time.time()
         self.timestamp = event.timestamp
@@ -191,10 +200,17 @@ class InputEventHandler:
         return consumed
 
 def keyEventToString(event):
+    try:
+        keyval_name = gdk.keyval_name(event.id)
+    except:
+        keyval_name = ""
+
     return ("KEYEVENT: type=%d\n" % event.type) \
+        + ("          id=%d\n" % event.id) \
         + ("          hw_code=%d\n" % event.hw_code) \
         + ("          modifiers=%d\n" % event.modifiers) \
         + ("          event_string=(%s)\n" % event.event_string) \
+        + ("          keyval_name=(%s)\n" % keyval_name) \
         + ("          is_text=%s\n" % event.is_text) \
         + ("          timestamp=%d\n" % event.timestamp) \
         + ("          time=%f" % time.time())
