Objective: To identify and describe factors associated with food shop (known as tuck shop in South Africa) and lunchbox behaviours of primary-school learners in South Africa. Design: Analysis of data collected in 2008 from a cross-sectional survey. Setting: Sixteen primary schools in the Western Cape, South Africa. Subjects: A total of 717 grade 4 learners aged 10-12 years. Results: A 24 h recall established that 69 % of learners carried a lunchbox to school and 49 % had consumed at least one item purchased from the school food shop/ vendor. Most lunchboxes contained white bread with processed meat, whereas the most frequent food shop/vendor purchase comprised chips/crisps. Learners who carried a lunchbox to school had significantly lower BMI percentiles (P 5 0?002) and BMI-for-age (P 5 0?034), compared with their counterparts. Moreover, they were younger, had higher standard-of-living and dietary diversity scores, consumed more meals per day, had greater self-efficacy and came from predominantly urban schools, compared with those who did not carry a lunchbox to school. Learners who ate food shop/vendor purchases had a lower standard-of-living score and higher dietary diversity and meal scores. Only 2 % of learners were underweight, whereas 19 % were stunted and 21 % were overweight/obese (BMI $ 25 kg/m 2 ). Conclusions: Children who carried a lunchbox to school appeared to have greater dietary diversity, consumed more regular meals, had a higher standard of living and greater nutritional self-efficacy compared with those who did not carry a lunchbox to school.