diff -ur wolfgl-0.93-orig/common/id_ca.c wolfgl-0.93/common/id_ca.c --- wolfgl-0.93-orig/common/id_ca.c 2006-01-28 16:59:10.000000000 -0500 +++ wolfgl-0.93/common/id_ca.c 2006-01-28 17:04:26.000000000 -0500 @@ -252,6 +252,7 @@ { unsigned short ch,chhigh,count,offset; unsigned short *copyptr, *inptr, *outptr; + unsigned char *uc_inptr; length/=2; @@ -268,13 +269,17 @@ if (!count) { // have to insert a word containing the tag byte - ch |= *((unsigned char*)inptr)++; + uc_inptr = (unsigned char*)inptr; + ch |= *(uc_inptr)++; + inptr = (unsigned short *)uc_inptr; *outptr++ = ch; length--; } else { - offset = *((unsigned char*)inptr)++; + uc_inptr = (unsigned char*)inptr; + offset = *(uc_inptr)++; + inptr = (unsigned short *)uc_inptr; copyptr = outptr - offset; length -= count; while (count--) @@ -287,7 +292,9 @@ if (!count) { // have to insert a word containing the tag byte - ch |= *((unsigned char*)inptr)++; + uc_inptr = (unsigned char*)inptr; + ch |= *(uc_inptr)++; + inptr = (unsigned short *)uc_inptr; *outptr++ = ch; length --; } @@ -806,7 +813,7 @@ for (i=0;i