diff --git a/examples/dokk/KEYS b/examples/dokk/KEYS
new file mode 100644
index 0000000000000000000000000000000000000000..2c04322429abdd0f0be32e8860701652bab6c88c
--- /dev/null
+++ b/examples/dokk/KEYS
@@ -0,0 +1,35 @@
+Keyboard:
+---------
+P                           Previous Level
+N                           Next Level
+<Space>                     Start Level
+<Backspace>                 Give up / Reset Level
+<Enter>                     Confirm / Set position
+E                           Display solution (only available when game not started)
+R                           Move ligand to start position
+<ESC>                       Quit
+<ArrowKeys>                 Move Camera
+W,A,S,D                     Move Camera
+
+Mouse:
+------
+Mouse wheel                 Zoom
+left click drag             Rotate Ligand
+<Shift> + left click drag   Move ligand
+right click drag            Rotate Camera
+
+
+Space Navigator:
+----------------
+<L>                         Previous Level
+<R>                         Next Level
+<T>                         Start Level
+<2D>                        Qucikstart Level
+<ALT>                       Give up / Reset Level
+<FIT>                       Confirm / Set position
+<+>                         Display solution (only available when game not started)
+<->                         Move ligand to start position
+<ESC>                       Quit
+<Shift>                     Load first Level
+<1>                         Enable / Disable Translation
+<2>                         Enable / Disable Rotation
\ No newline at end of file
diff --git a/examples/dokk/glwin.py b/examples/dokk/glwin.py
index 23a5a54920ab91df4c0c7d16e77015d6e0352379..032099420435bd2bbc60d3480ef51be85764c839 100644
--- a/examples/dokk/glwin.py
+++ b/examples/dokk/glwin.py
@@ -116,29 +116,28 @@ class DokkGLCanvas(QGLWidget):
       self.dokk.NextLevel()
     elif event.key() == Qt.Key_Space:
       self.dokk.GetLevel().Begin()
-    
-    if not self._lock_input:
-      if event.key() == Qt.Key_Left or event.key() == Qt.Key_A:
+    elif event.key() == Qt.Key_Left or event.key() == Qt.Key_A:
         self.OnTransform(gfx.INPUT_COMMAND_TRANSX,0, gfx.TRANSFORM_VIEW, -TRANS_VAL)
         
-      elif event.key() == Qt.Key_Right or event.key() == Qt.Key_D:
-        self.OnTransform(gfx.INPUT_COMMAND_TRANSX,0, gfx.TRANSFORM_VIEW, TRANS_VAL)
-        
-      elif event.key() == Qt.Key_Down or event.key() == Qt.Key_S:
-        self.OnTransform(gfx.INPUT_COMMAND_TRANSZ,0, gfx.TRANSFORM_VIEW, TRANS_VAL)
-        
-      elif event.key() == Qt.Key_Up or event.key() == Qt.Key_W:
-        self.OnTransform(gfx.INPUT_COMMAND_TRANSZ,0, gfx.TRANSFORM_VIEW, -TRANS_VAL)
-
-      elif event.key() == Qt.Key_Backspace:
+    elif event.key() == Qt.Key_Right or event.key() == Qt.Key_D:
+      self.OnTransform(gfx.INPUT_COMMAND_TRANSX,0, gfx.TRANSFORM_VIEW, TRANS_VAL)
+      
+    elif event.key() == Qt.Key_Down or event.key() == Qt.Key_S:
+      self.OnTransform(gfx.INPUT_COMMAND_TRANSY,0, gfx.TRANSFORM_VIEW, -TRANS_VAL)
+      
+    elif event.key() == Qt.Key_Up or event.key() == Qt.Key_W:
+      self.OnTransform(gfx.INPUT_COMMAND_TRANSY,0, gfx.TRANSFORM_VIEW, TRANS_VAL)
+    
+    elif event.key() == Qt.Key_E and self._lock_input:
+      self.dokk.GetLevel().Solve()
+    
+    if not self._lock_input:
+      if event.key() == Qt.Key_Backspace:
         self.dokk.GetLevel().Reset()
     
       elif event.key() == Qt.Key_Enter or event.key() == Qt.Key_Return:
         self.dokk.GetLevel().Finished()
-        
-      elif event.key() == Qt.Key_E:
-        self.dokk.GetLevel().Solve()
-        
+                
       elif event.key() == Qt.Key_R:
         self.dokk.GetLevel().ResetPos()