Yup! Adding "DEFINE HSER_CLROERR 1" has solved the "hanging" problem.

As I previously set the RCSTA.1 = 1, I wrongly thought this would handle the automatic overrun. I should have noticed the "Read-Only" flag on this bit in the datasheet.

BTW, what exactly does "DEFINE HSER_CLROERR" 1 do? Where can I find information about what other DEFINE commands do?

NB: my apologise Demon; I missed your advice for a pull-up in an early post

Final working code is HSERIN-EUART-test_18F2420.zip