I suspect the problem is not in the Dead Method , but that item in the sprite list is not valid. Somehow one of the items in your mainfm.DXSpriteEngine1.Engine.Items list is an invalid instance or nil.

When calling a method on a invalid instance the access violation will appear to be in the method you called (usually when trying to access something that
has not be created/initialized etc). I would check that

[pascal]
For I:= mainfm.DXSpriteEngine1.Engine.allcount-1 downto 0 do
begin
if (mainfm.DXSpriteEngine1.Engine.Items[i] <> nil) then
begin
mainfm.DXSpriteEngine1.Engine.Items[i].dead;
end;
end;
[/pascal]

That might help :?: