Thank you for your help Elon,
some of it was hard to follow, but basically I've now got 2 sets of variables: upcall, downcall, upcalled, downcalled
In general:
upcall and downcall tell the lift if it can be called up or down (via multisources, these master the buttons)
upcalled and downcalled master subsequent movement- i.e. the lift doors closing triggering lift movement. This was put in to prevent the lift moving if it's initial position triggered any path corners...
maybe the second set of variables are more trouble than they are help... I don't know...
I think one prob was caused by my friendly bots... they seem to be able to wedge open locked doors... in a wierd wierd way.
Would it be of interest if I posted the map on problem maps?