Question: When I compile our project use Delphi 2010 Trial, there has a fatal error :

[DCC Fatal Error] F2084 Internal Error: L1737

Seem's a internal error. No hint at all. 

Is this a compiler bug or trial limit?

Thanks.

Answer: 
Make sure your paths are not mangled with those of older versions.  

Make sure you delete all the DCUs used in your project, included 3rd party components (unless you have some component without the source, in that case double check you have the latest DCUs for D2010) then do a build all to regenerate all those.  

Then try to cut your application in smaller parts and see what part is causing the problem: the goal is **to have the simplest possible application that triggers the error**, to be able to send it to Embarcadero with a reasonable chance for them to find the problem...
Finally, I found the problem. 

We used one SmartPtr pattern introduced from Barry Kelly's blog, D2010's compiler consider that is invalid. and the smartptr words fine with D2009. 

Thanks a lot.

By the way , I post my smartptr here :) and our region still no D2010 for selling :(

I dont know what changed in D2010 compilers's implementation.

```
type

  TSmartPtr<T: class> = class(TInterfacedObject, TFunc<T>)
  private
    FValue: T;
  public
    constructor Create(AValue: T);
    destructor Destroy; override;
    function Invoke: T;
  end;

  TSmartPtrArray<T: class> = array of TFunc<T>;

implementation

{ TObjectHandle }

constructor TSmartPtr<T>.Create(AValue: T);
begin
  FValue := AValue;
end;

destructor TSmartPtr<T>.Destroy;
begin
  if Assigned(FValue) then
    FValue.Free;
end;

function TSmartPtr<T>.Invoke: T;
begin
  Result := FValue;
end;

```