Atomistic modelling techniques are used to study the rate-determining steps that limit diffusion of oxygen in forsterite. The activation energies for diffusion parallel to all three crystallographic axes by the vacancy and interstitial mechanisms are calculated. The activation energy for extrinsic vacancy diffusion is predicted to be isotropic with a barrier height of 119 kJ mol-1. Conversely, in the interstitial case it is found to be anisotropic, with extrinsic activation energies that range between 94 and 178 kJ mol-1. The effect of intrinsic defects and two typical impurities, iron and hydrogen, upon diffusion is also considered. We find that the migration energy is slightly higher in iron-rich fayalite compared with forsterite and that the presence of hydrogen defects will not affect the diffusion mechanism. These observations lead us to reinterpret existing experimental results on oxygen diffusion in natural olivine. We suggest that at low oxygen partial pressure the mechanism observed is a vacancy mechanism, while at high oxygen partial pressure the mechanism is interstitial. We believe that this change in mechanism is mediated by iron redox reactions. Taking this process into account, we derive activation energies in excellent agreement with those found experimentally in natural samples of olivine. The anisotropy of activation barriers and hence the change in diffusion rates with temperature could be used to distinguish between the two mechanisms in future experimental work.