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);
 	}
