Implement the full/basic switch correctly and completely. Additionally, fixed a rare sprefs init failure.