Cellwriter needs to have a keycode for every simulated keysym it does.
It tries to find an existing keycode <-> keysym mapping if possible,
but the code that does it unnecessarily checks for the second (shifted)
keysym before checking the unshifted one first; so some keysyms are 
always delivered with a simulated shift key even if it is not necessary.

Fixed.

James 2015.

diff -ur cellwriter-1.3.5/src/keyevent.c cellwriter-1.3.5-new/src/keyevent.c
--- cellwriter-1.3.5/src/keyevent.c	2012-11-12 13:52:30.000000000 +0700
+++ cellwriter-1.3.5-new/src/keyevent.c	2015-04-12 01:26:51.000000000 +0700
@@ -263,7 +263,7 @@
         key_event->shift = FALSE;
 #ifndef ALWAYS_OVERWRITE
         for (i = 0; i <= key_max - key_min; i++) {
-                if (keysyms[i * key_codes + 1] == keysym)
+                if (keysyms[i * key_codes] != keysym && keysyms[i * key_codes + 1] == keysym)
                         key_event->shift = TRUE;
                 if (keysyms[i * key_codes] == keysym || key_event->shift) {
                         key_event->keycode = key_min + i;

