[ref_impl_eiffel] [1471] Manual merge of code from revs 1465, 1466, 1468-70 from ADL2. 0 branch to ADL1.5.

Revision: 1471
Author: thomas.beale
Log Message: