The Bloch equations, with time-varying driving field, and T-2 relaxation, are expressed as a scattering problem, with Gamma(2 )= 1/T-2 as the scattering parameter, or eigenvalue. When the rf pulse, describing the driving field, is real, this system is equivalent to the 2x2 Zakharov-Shabat eigenvalue problem. In general, for complex rf pulses, the system is a third-order scattering problem. These systems can be inverted, to provide the rf pulse needed to obtain a given magnetization response as a function of Gamma(2) In particular, the class of "soliton pulses" are described, which have utility as T-2-selective pulses. For the third-order case, the dressing method is used to calculate these pulses. Constraints on the dressing data used in this method are derived, as a consequence of the structure of the Bloch equations. Nonlinear superposition formulas are obtained, which enable soliton pulses to be calculated efficiently. Examples of one-soliton and three-soliton pulses are given. A closed-form expression for the effect of T-1 relaxation for the one-soliton pulse is obtained. The pulses are tested numerically and experimentally, and found to work as predicted.