C: squash most changes from master, just not the recursive walker