On this sample, BPEL returns a fault properly prefixed with 'soap:'
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>A fault occurs during the petals treatment</faultstring>
<detail>
<removeClientOperationIllegalArgumentFault xsi:type="fault:IllegalArgumentFault" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fault="http://document.prosodie.com/Fault/1/">
<tns:message xsi:type="xs:string" xmlns:tns="http://document.prosodie.com/Fault/1/" xmlns:xs="http://www.w3.org/2001/XMLSchema">RemoveClientOperation Error.</tns:message>
</removeClientOperationIllegalArgumentFault>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
However, since faultCode is considered as a string (and not a QName), the prefix is not properly replaced by the corresponding SOAP namespace prefix in the newly created SOAP body.
as stated in http://www.w3.org/TR/2000/NOTE-SOAP-20000508/
faultCode MUST be a QNAME.