Code works in prog, not in DLL

The program in question is Protected DOS/TurboVision/DBengine.

I've taken a unit that has a single tObject descendent that prints a
form. The object is passed a pointer to a record, a pointer to a global
object of pointers to object, a tCollection descendent and another
pointer.

The dll is apparently loading (seen in the de{*word*81}) but when the object
initializes an internal object (to itself) that uses the engine tables
(referenced via the pointer to pointers object), run-time 216 happens.

Any ideas? Is it the DS <> SS dll thing biting me? The variable in
question never changes (so it isn't getting corrupted).