Ok now I am curious SomePointer := Pointer(PtrInt(SomeNumber)) SomePointer := Pointer(PtrUInt(SomeNumber)) The 2nd gives the warning. Warning: Conversion between ordinals and pointers is not portable But the first does not. Yet PtrInt/PtrUInt are both the size of pointer?