Is there an order-preserving Environment quark?

I managed to “fix that” without touching the (actually) offending C++ code (prSymbol_envirPut which does a “non-virtual call” into IDict), although my fix does look a bit inefficient:

+ Symbol {

	envirPut { arg aValue;
		//("envirPut hook for a" + currentEnvironment.class).postln;
		if(Event.superclasses.add(Event).includes(currentEnvironment.class).not,
			{/*"overrrided native".postln;*/ ^currentEnvironment.put(this, aValue)},
			{^this.nativePut(aValue)}
		);
	}

	nativePut { arg aValue;
		_Symbol_envirPut
		currentEnvironment.put(this, aValue);
		^aValue
	}
}