We propose here a simple scheme to use information on compliance and prerandomization covariates to improve analysis of randomized trials with non-compliance. We use the data to determine the effect of randomization on treatment received among various strata defined by pretreatment covariates. When the effect of treatment received on the outcome of interest is the same across strata and pretreatment covariates predict non-compliance, weighting the estimating functions by the effect of randomization on treatment received can improve the precision of explanatory estimates of treatment effect and can increase the power of intent-to-treat tests of the null hypothesis. Efficiency gains under the weighting scheme are a simple increasing function of the variability of these weights. Such weighting schemes will often lead to improvements even when these conditions are not met. We use a randomized trial of cholestyramine to illustrate these points. Copyright © 2003 John Wiley & Sons, Ltd.