When creating a new value I have to do something like: ArrayByteBuffer buffer = new ArrayByteBuffer(word); buffer.order(register.type.getEndian()); return new Value(register.type, register.name, buffer); should not need to set the buffer's order as well.