avoided compilation warnings on gcc 3.3.x systems

diff --git a/skeletons/OBJECT_IDENTIFIER.c b/skeletons/OBJECT_IDENTIFIER.c
index 4e6270d..fe20905 100644
--- a/skeletons/OBJECT_IDENTIFIER.c
+++ b/skeletons/OBJECT_IDENTIFIER.c
@@ -332,7 +332,7 @@
 			*(unsigned char *)((char *)arcs
 				+ ((*(char *)&LE)?0:(arc_type_size - 1)))
 					= first_arc;
-			(char *)arcs += arc_type_size;
+			arcs = ((char *)arcs) + arc_type_size;
 		}
 
 		/* Decode, if has space */
@@ -342,7 +342,7 @@
 					arcs, arc_type_size))
 				return -1;
 			startn = i + 1;
-			(char *)arcs += arc_type_size;
+			arcs = ((char *)arcs) + arc_type_size;
 			add = 0;
 		}
 		num_arcs++;
@@ -538,7 +538,7 @@
 		 */
 		/* Copy the second (1'st) arcs[1] into the first_value */
 		*fv++ = 0;
-		(char *)arcs += arc_type_size;
+		arcs = ((char *)arcs) + arc_type_size;
 		if(isLittleEndian) {
 			uint8_t *aend = (unsigned char *)arcs - 1;
 			uint8_t *a1 = (unsigned char *)arcs + arc_type_size - 1;
@@ -567,8 +567,9 @@
 	/*
 	 * Save the rest of arcs.
 	 */
-	for((char *)arcs += arc_type_size, i = 2;
-			i < arc_slots; i++, (char *)arcs += arc_type_size) {
+	for(arcs = ((char *)arcs) + arc_type_size, i = 2;
+		i < arc_slots;
+			i++, arcs = ((char *)arcs) + arc_type_size) {
 		bp += OBJECT_IDENTIFIER_set_single_arc(bp,
 			arcs, arc_type_size, 0);
 	}