Hi All,

�� �� I'm trying to debug remaining limitations in Image Segment support in Spur using a case provided by Max Leske.�� This is a pair of Pharo 6 images, one of which saves an image segment the other which loads it.�� Both use OSEnvironment>>getEnv: to access environment variables.

The base definition of��OSEnvironment>>getEnv: is

!OSEnvironment methodsFor: 'accessing' stamp: 'auto 5/3/2016 10:31'!
getEnv: arg1
�� �� �� �� "This method calls the Standard C Library getenv() function. The name of the argument (arg1) should fit decompiled version."
�� �� �� �� ��^ self ffiCall: #( String getenv (String arg1) ) module: LibC! !

but as I'm using the VM Simulator to debug the image segment issues I need to avoid the FFI, which isn't yet simulateable.�� So I redefine OSEnvironment>>getEnv: as follows, and then save and exit.

!OSEnvironment methodsFor: 'accessing' stamp: 'EliotMiranda 02/27/2019 17:09'!
getEnv: aByteStringOrByteArray
�� �� �� �� "This method calls the Standard C Library getenv() function. The name of the argument (arg1) should fit decompiled version."
�� �� �� �� <primitive: 'primitiveGetenv' module: '' error: ec>
�� �� �� �� ec == #'bad argument' ifTrue:
�� �� �� �� �� �� �� �� [aByteStringOrByteArray isString ifFalse:
�� �� �� �� �� �� �� �� �� �� �� �� [^self getEnv: aByteStringOrByteArray asString]].
�� �� �� �� self primitiveFail! !

But, and here's the weird bit, when I start up the image, the new definition has been discarded and replaced by the original.�� WTF?!?!�� Why is this happening?�� How can I disable this?

The only way that I've found I am able to save with a new version is by doing a Save As... to a new name.�� This is fine, but I find the current behavior extremely unhelpful.�� Is it a bug?�� If it is intended, whats the rationale?
_,,,^..^,,,_
best,��Eliot