This will allow you to use OLC with 128bit.patch. This work for me on CircleMUD3.0bpl14 with OLC+-v2.1-bpl14.patch and 128bit.patch. I recommend adding 128bit.patch first, and OLC second. Will make this easier... No warranties, guaranties, etc... ----------------- REDIT.C Search for all: sprintbit(OLC_ROOM(d)->room_flags, room_bits, buf1); Change to: sprintbitarray(OLC_ROOM(d)->room_flags, room_bits, RF_ARRAY_MAX, buf1); ---------------- Search for: fprintf(fp, "#%d\n%d~\n%d~\n%d %d %d\n", counter, Change to: fprintf(fp, "#%d\n%d~\n%d~\n%d %d %d %d %d %d", counter, and just below that, room->roomflags[0], room->roomflags[1], room->roomflags[2], room->roomflags[3], room->sector_type); ---------------- Search for: TOGGLE_BIT(OLC_ROOM(d)->room_flags, 1 << (number - 1)); Change to: TOGGLE_BIT_AR(OLC_ROOM(d)->room_flags, number - 1); ----------------- MEDIT.C Search for all: sprintbit(MOB_FLAGS(OLC_MOB(d)), action_bits, buf1); Change to: sprintbitarray(MOB_FLAGS(OLC_MOB(d)), action_bits, PM_ARRAY_MAX, buf1); ----------------- Search for all: sprintbit(AFF_FLAGS(OLC_MOB(d)), affected_bits, buf1); Change to: sprintbitarray(AFF_FLAGS(OLC_MOB(d)), affectted_bits, AF_ARRAY_MAY, buf1); ---------------- Search for: TOGGLE_BIT(MOB_FLAGS(OLC_MOB(d)), 1 << (i - 1)); and just below, TOGGLE_BIT(AFF_FLAGS(OLC_MOB(d)), 1 << (i - 1)); Change to: TOGGLE_BIT_AR(MOB_FLAGS(OLC_MOB(d)), i - 1); and, TOGGLE_BIT_AR(AFF_FLAGS(OLC_MOB(d)), i - 1); ----------------- Search for: "%ld %ld %d E\n" Change to: "%ld %ld %ld %ld %ld %ld %ld %ld %d E\n" and just below that change mob and aff flags to: (long) MOB_FLAGS(mob)[0], (long) MOB_FLAGS(mob)[1], (long) MOB_FLAGS(mob)[2], (long) MOB_FLAGS(mob)[3], (long) AFF_FLAGS(mob)[0], (long) AFF_FLAGS(mob)[1], (long) AFF_FLAGS(mob)[2], (long) AFF_FLAGS(mob)[3], ------------------- OEDIT.C Search for all: sprintbit(GET_OBJ_EXTRA(OLC_OBJ(d)), extra_bits, buf1); Change to: sprintbitarray(GET_OBJ_EXTRA(OLC_OBJ(d)), extra_bits, EF_ARRAY_MAX, buf1); --------------- Search for all: sprintbit(GET_OBJ_WEAR(OLC_OBJ(d)), wear_bits, buf1); Change to: sprintbitarray(GET_OBJ_WEAR(OLC_OBJ(d)), wear_bits, TW_ARRAY_MAX, buf1); -------------- Search for: "%d %d %d\n" Change to: "%d %d %d %d %d %d %d %d %d\n" and just below that change GET_OBJ_EXTRA and GET_OBJ_WEAR to: GET_OBJ_EXTRA(obj)[0], GET_OBJ_EXTRA(obj)[1], GET_OBJ_EXTRA(obj)[2], GET_OBJ_EXTRA(obj)[3], GET_OBJ_WEAR(obj)[0], GET_OBJ_EXTRA(obj)[1], GET_OBJ_EXTRA(obj)[2], GET_OBJ_EXTRA(obj)[3], ---------------- Search for: GET_OBJ_WEAR(OLC_OBJ(d)) = ITEM_WEAR_TAKE; Change to: SET_BIT_AR(GET_OBJ_WEAR(OLC_OBJ(d)), ITEM_WEAR_TAKE); ------------------ That should be it if I remember right... I'm doing this from memory so there may need to be a few small changes.