--- src/events.c +++ src/events.c 2012-05-31 15:13:06.832009873 +0000 @@ -1611,8 +1611,11 @@ upshift_event (Lisp_Object event) XSET_EVENT_KEY_KEYSYM (event, make_char (c + 'A' - 'a')); else if (!(XEVENT_KEY_MODIFIERS (event) & XEMACS_MOD_SHIFT)) - XSET_EVENT_KEY_MODIFIERS - (event, XEVENT_KEY_MODIFIERS (event) |= XEMACS_MOD_SHIFT); + { + Lisp_Object tmp = XEVENT_KEY_MODIFIERS (event); + tmp |= XEMACS_MOD_SHIFT; + XSET_EVENT_KEY_MODIFIERS (event, tmp); + } } void --- src/mule-wnnfns.c +++ src/mule-wnnfns.c 2012-05-31 15:27:10.952509987 +0000 @@ -2117,7 +2117,7 @@ yes_or_no (UExtbyte *s) c2m (s, mbuf, charset); /* truncate "(Y/N)" */ for (len = 0; (mbuf[len]) && (len < 512); len++); - for (; (mbuf[len] != '(') && (len > 0); len--); + for (len--; (mbuf[len] != '(') && (len >= 0); len--); { Lisp_Object yes, str; struct gcpro gcpro1;