As far as possible, message evaluation should not happen in field __init__ (often run at import time). Backport of cecbb713 from master.