We consider finite-amplitude convection in a mushy layer during the primary solidification of a ternary alloy. A previous linear theory identified, for the case of vanishing latent heat, solute rejection and background solidification, a direct mode of convective instability when all the individual stratifying agencies (thermal and two solutal) were statically stabilizing. The physical mechanism behind this instability was attributed to the local-phase-change effect on the net solute balance through the liquid-phase solutal diffusivity. A weakly nonlinear development of this instability is investigated in detail. We examine the stability of two-dimensional roll, and three-dimensional square and hexagonal convection patterns. The amplitude evolution equations governing roll/square and roll/hexagon competition are derived. We find that any of rolls, squares or hexagons can be nonlinearly stable, depending on the relative importance of a number of physical effects as reflected in the coefficients of the amplitude equations. The results for a special case are found to isolate a purely double-diffusive phase-change mechanism of pattern selection. Subcritical behaviour is identified inside the domain of individual static stability.