synced with upstream r100