diff --git a/helgrind/hg_main.c b/helgrind/hg_main.c
index 60b5a48..2cc640d 100644
--- a/helgrind/hg_main.c
+++ b/helgrind/hg_main.c
@@ -220,8 +220,7 @@
    union u_ec_eip {
       Addr		eip;
       ExeContext	*ec;
-   };
-
+   } uu_ec_eip;
    UInt			state:STATE_BITS;
    UInt			tls:OTHER_BITS;		/* packed TLS */
 } EC_EIP;
@@ -2504,10 +2503,11 @@
       if (*msg)
 	 VG_(message)(Vg_UserMsg, "  Previous state: %s", msg);
 
-      if (clo_execontext == EC_Some && extra->lasttouched.eip != 0) {
+      if (clo_execontext == EC_Some 
+          && extra->lasttouched.uu_ec_eip.eip != 0) {
 	 Char file[100];
 	 UInt line;
-	 Addr eip = extra->lasttouched.eip;
+	 Addr eip = extra->lasttouched.uu_ec_eip.eip;
 	 
 	 VG_(message)(Vg_UserMsg, "  Word at %p last changed state from %s by thread %u",
 		      err_addr,
@@ -2523,12 +2523,13 @@
 	 } else {
 	    VG_(message)(Vg_UserMsg, "   at %p: %y", eip, eip);
 	 }
-      } else if (clo_execontext == EC_All && extra->lasttouched.ec != NULL) {
+      } else if (clo_execontext == EC_All 
+                 && extra->lasttouched.uu_ec_eip.ec != NULL) {
 	 VG_(message)(Vg_UserMsg, "  Word at %p last changed state from %s in tid %u",
 		      err_addr,
 		      pp_state(extra->lasttouched.state),
 		      unpackTLS(extra->lasttouched.tls)->tid);
-	 VG_(pp_ExeContext)(extra->lasttouched.ec);
+	 VG_(pp_ExeContext)(extra->lasttouched.uu_ec_eip.ec);
       }
       break;
    }
@@ -2539,9 +2540,9 @@
 		   VG_(get_error_address)(err),
 		   VG_(get_error_string)(err));
       pp_ExeContext();
-      if (extra->lasttouched.ec != NULL) {
+      if (extra->lasttouched.uu_ec_eip.ec != NULL) {
 	 VG_(message)(Vg_UserMsg, "  last touched by thread %d", extra->lasttid);
-	 VG_(pp_ExeContext)(extra->lasttouched.ec);
+	 VG_(pp_ExeContext)(extra->lasttouched.uu_ec_eip.ec);
       }
       pp_AddrInfo(VG_(get_error_address)(err), &extra->addrinfo);
       break;
@@ -2727,7 +2728,7 @@
 
 static void eraser_mem_read_word(Addr a, ThreadId tid, ThreadState *tst)
 {
-   shadow_word* sword;
+   shadow_word* sword /* egcs-2.91.66 complains uninit */ = NULL; 
    shadow_word  prevstate;
    ThreadLifeSeg *tls;
    const LockSet *ls;
@@ -2847,7 +2848,7 @@
 static void eraser_mem_write_word(Addr a, ThreadId tid, ThreadState *tst)
 {
    ThreadLifeSeg *tls;
-   shadow_word* sword;
+   shadow_word* sword /* egcs-2.91.66 complains uninit */ = NULL;
    shadow_word  prevstate;
    Bool statechange = False;
    static const void *const states[4] = {
