When using native contracts, script hash of second-to-top context on invocation stack does not always correspond to a real calling contract.
System.Runtime.*
runtime/
Also extend test suite.