A block of ice resting upon a rough slope forms a theoretical model of a glacier or an ice-sheet, the sides of the glacier valley being ignored. Previous papers have described two types of steady flow in this model: (a) laminar flow, in which the longitudinal velocity gradient r is zero, and (b) extending or compressive flow, in which r is non-zero. (a) was derived under the assumption of a general flow law for ice, but (b) was only derived under the assumption of perfect plasticity. In the present paper a general flow law is used throughout, and the equations for steady flow, with r allowed to be non-zero, are found. The previous results (a) and (b) appear as special cases. Possible variations of density, temperature or flow law with depth are allowed for. If the density and the flow law are known as functions of depth in any region, and if the surface slope, the surface velocity, and the value of r are known, the equations give the stresses and velocity as functions of depth. The borehole experiment on the Jungfraufirn (1948-50) allows an experimental test. From the observed value of r, and Glen's laboratory flow law for ice, a theoretical curve for the result of the experiment is calculated which is compared with the experimental curve. At a depth of 50 m the effect of ignoring r, as has been done hitherto, is to underestimate the shear rate by a factor of 50; on the present theory it is overestimated by a factor of 1$\cdot $33. The remaining discrepancy is probably mainly due to the effect of the glacier sides.