See Bug 216201 and bug 245027 In the second bug I've started a patch but it's not a full port.
<rdar://problem/100176652>