Multi-threaded BDE access - FieldByName call hangs

I've never done multi-threaded Paradox access before, but I've read
thru the help.  I'm using Delphi 5.01/BDE 5.1.1.  I saw a reference
here to the tip:

http://community.borland.com/article/print/0,1772,16231,00.html

This tip seems to go thru some extra trouble to allow spawning
multiple copies of the thread.  I've only got the usual main thread,
plus one helper thread that I'll only have one instance of.

So, what I tried is as follows:  I have two data modules, one used by
the user controls, and one exclusively for the thread.  I have a
session component on the data module used for the thread.  I manually
set the session name on that session and connect all tables on that
data module to that session.

This seems like it is supposed to work based on what the help file
says, and uses with no coding.  The solution in the listed tip has
lots of code, but as I said, it seems to be overly complicated by
having multiple instances of the support thread.  My solution starts
out like it is working, but when I try to seek to a record by the
following code:

  CDM.CommDb.SetKey;
  CDM.CommDb.FieldByName('ServerName').AsString := ServerName;
  if not CDM.CommDb.GotoKey then

The thread hangs on the FieldByName call, I never get to the GotoKey
line.  CDM is the comm data module, with its own session, and CommDb
is a Paradox table on that data module with the session set to the
local session.  So, I'm stumped.  Anybody with any ideas on what to
try?