Most of the units I work on rely on a Data Module. One of the most annoying things I come accross is an error message telling me 

> 
> Module X references another module and cannot be saved until Module Y is loaded.
> 
> 
> 

Now, I'm sure there is a very good reason why `CheckNoFixups` raises this error while trying to `WriteRootStream`, and fails to save what is in effect a Text file (and hopefully this isn't followed by `Catastrophic Failure` where I must then restart the IDE while still unable to save my work.) but what is the good reason? 

Why am I unable to click save without opening anothing text file containing various functions and objects much like any other unit? whats so special about a DataModule that means I can't save the source I'm working on until it's open, why aren't the 45 other units in the uses clause so important they must be open?

**EDIT:**
 It's Delphi 2007

the Declaration of the DataModule is : 

```
unit DataMD;

TRepDataMod = class(TDataModule)
...
var
  RepDataMod: TRepDataMod;

```