Previous observations in the Gareloch, a Scottish silled fjord, have identified yet failed to explain the baroclinic circulation pattern. Additional fieldwork was carried out in April 2005, showing the loch to be stratified with two distinct layers and currents in each layer 180° out of phase at the M2 frequency. The currents did not display the expected sinusoidal signal that is characteristic of the tide and instead were pulsated and stronger than predicted by barotropic forcing. Fourier analysis showed that the flow was dominated by short period non-linear oscillations that were harmonics of the semi-diurnal tide. Two hydrostatic estuarine models were applied to the Gareloch: a 2D vertical model (SLICE) and a 3D model (ECOMSED). Both models were capable of reproducing the observed (2005) baroclinic circulation at the M2 time scale but failed to simulate the higher frequency, non-linear oscillations. However, each model generated higher harmonics in idealised scenarios. Because lateral motion was negligible and SLICE was an order of magnitude more efficient than ECOMSED, the 2D model was used to simulate the higher harmonics and showed that their generation was attributed to the non-linear distortion of the internal tide. When the internal Froude number (determined by barotropic velocity, stratification and water depth) was increased from a sub-critical value, non-linear advection became more important and higher harmonics were generated. The internal tide was further modified by wave reflection and interaction off steep boundaries, and by flow over the sill.