Locate in Master/Detail tables causes Detail table to fail

Using the latest patch for ADO, I found a problem with the use of the Locate
procedure within a detail table (when using CursorLocation clUseServer on SQL
server 7) producing:
   EOleException - Object was open.

To reproduce, create a simple form with a master table using TAdoQuery (Select
* from Master). Add a detail table linked to the master via its DataSource. Set
the Cursor Location to clUseServer. Add navigators to both tables & display
them in a grid. Add a button to perform a Locate eg Locate(DetailField, 'abc',
[]).

Run the app, navigation is normal, editing is Ok.

Press the button to perform a locate within the Detail table - locates the
record fine.

Now the problem, attempt to move another record in the master table or press
Edit and you get the exception above.

The problem appears to be in TCustomADODataSet.LocateRecord which creates a
clone of the recordset to perform the locate and doesn't free this clone.

Grant