I found the problem.
For some obscure reason, I had a faulty template for the Crossbow (Bowcaster):
# DESC: Crossbow
# BBOX: -.020392 -.135722 -.016856 .021073 .013215 .015722
+crossbowbolt _weapon thingflags=0x20000001 light=0.500000 model3d=2x3door_4
size=0.005000 movesize=0.005000 soundclass=bow.snd creatething=+lgflash vel=(0.000000/5.000000/0.000000) angvel=(0.000000/0.000000/120.000000) explode=+crossbowhit fleshhit=+crossbowhit damage=60.000000 mindamage=20.000000 damageclass=0x4 typeflags=0x20440d rate=10.000000
So, I changed it to 2x3door_4.3do, but then Zed said it couldn't find the 3do.
So I opened up the master.tpl of one of my other project, and the correct name for the 3do seems to be: bow0.3do (which is the bowcaster bolt).
I haven't screwed around with any of the weapon templates, I just added new templates with the template creator.
I can't even imagine what caused this to change... but in case it's something Zed did, I'm afraid there might be more screw-ups in the master.tpl.
So perhaps I'd better start with a fresh master.tpl and add my custom templates to it. (Is there an easy way to get a fresh master.tpl besides starting a new project?)