Synced with the source at aba9fe8d670c549e79e2130287aecf766a917208.