Wire I2C to NXT Ultrasonic Sensor

This is my simple code to access NXT Ultrasonic.
void loop() {
byte err;
Wire.beginTransmission(0x01);

Wire.send(0x42);
Wire.send(0x42); // << this is the problem spot.
err = Wire.endTransmission();

Wire.requestFrom(0x01,1);
Serial.println(int(Wire.receive()));
delay(1000);
}

This code produce perfect I2C access signal.
0x02 Write + 0x42 + 0x42 + 0x03 Read
But this is not the Sequence NXT Ultrasonic want.
NXT Ultrasonic expected
0x02 Write + 0x42 + 0x03 Read

So it seems easy, just remove one of the wire.send(0x42).
But it is not the case.
Once I remove the 2rd wire.send(0x42)
The I2C output signal become.
0x02 Write + 0x42 + 0x02 Write

Something strange must be happen inside the Wire.