RAck only should appear in PRACK (request), and not in the 200 OK response to the PRACK. The code in TransactionState.cxx TransactionState::process() wrongly copies RAck from the request to the response (grep for h_RAck, this is the only place in the whole file it appears). What's more, because the copy appears to leave off the method from the original request's RAck, the response subsequently fails basic parsing upon receipt by another UA. I am using resiprocate 1.7. This substantially affects all reliable provisional response transactions.
Basically, this code should simply be removed:
InfoLog(<<"Other end changed our RAck... replacing.");