synced with node 0.10.29