Which version of Lazarus?
It's always in my sig

Thanks for the hints. I managed to 'restore' the IDE for the particular project (starting with a clear settings directory worked; thx Martin_fr). Somehow the problem is related to range checking. I managed to grab the error message when the IDE crashes by pressing PrintScreen at the right moment (see attachment). Note that the dialog does not actually wait for me to press either button.
Now I get very strange runtime behaviour for the program I had the problem with in the first place.
My program aborts at the line below. This line is in ImgList.inc; part of the LCL

procedure TCustomImageList.GetRawImage(Index: Integer; out Image: TRawImage);
begin
Image.Init;
if (FCount = 0) then Exit;
CheckIndex(Index);
FillDescription(Image.Description);
Image.DataSize := FWidth * FHeight * SizeOf(FData[0]);
Image.Data := @FData[Index * FWidth * FHeight]; //<------------- ABORT
end;
The one thing I remember is that yesterday I started a new project with the Vampyre Imaging library. This library (
not an installed package) has a bug in that it defines an array somewhere like this: 'array[0..0] of...'
This array is a placeholder for a dynamically allocated structure, but the array is accessed via an index.
Hence it generates range check errors at compile time.
So I had to disable range checking for this particular project.
But now this range check error has spread somehow to the other project and the IDE!