PRO REGRESS_FIT,X,Y,FDER,A0,PARAM,PERR,ERROR=ERR,WEIGHT=WEIGHT, $
        POISSON=POISSON,CHISQR=CHISQR,CMATRIX=COR
;
    ON_ERROR,2
;
;  Check the number of parameters passed.
;
    IF N_PARAMS(0) LT 5 THEN BEGIN
        PRINT,' This procedure must be called with 5-6 parameters:'
        PRINT,'         X, Y, FDER, A0, PARAMS  [, PERR ]'
        RETURN
    ENDIF
;
;  From FDER, get the parameter NDATA.
;
    S = SIZE(FDER)
    IF S(0) NE 2 THEN MESSAGE, 'FDER must have two dimensions'
    NDATA = S(1)
;
    Y0 = AVG(Y)
    A0 = Y0
    F0 = AVG(FDER,0)
    FDER0 = FDER - (REPLICATE(1,NDATA) # F0)
    FITTER,X,Y,FDER0,PARAM,PERR,POISSON=POISSON,ERROR=ERR,WEIGHT=WEIGHT, $
        CHISQR=CHISQR,YZERO=Y0
    A0 = A0 - TOTAL(PARAM*F0)
;
    RETURN
    END