EOF true when calling First on 1 record dataset

I'm getting an odd problem with TADODatasets that have just 1 record.
Under certain situations, EOF is true after calling the TADODataset's
First method.  This is with Delphi 5 E and ADOExpress with all of the
Update Packs applied.  MDAC is version 2.51 and I'm using Win2k SP1 to
connect to SQL Server 7.

As a work around, I'm using code like

    with ADataSet do begin
      DisableControls;
      if RecordCount > 0 then
        RecordSet.MoveFirst;
      First;
      while (not EOF)  do begin
         -- Stuff here
          Next
      end;
      EnableControls;
    end;

Is this a bug or otherwise known limitation of MDAC 2.5x?

thanks

Chris Miller
VersaTrans Solutions, Inc.