after having a look with ben at the current refactoring implementation in Nautilus we found that the "Extract into temporary" refactoring is most of the time not that useful. I wonder wether it would make sense to loosen the requirements on conserving behavior... consider the following example where we extract "self foo" into the temporary "tmp": =========================================== foo ^ self foo even ifTrue: [ self foo * 2 ] ifFalse: [ self foo / 2 ] actual result ============================= foo | tmp | tmp := self foo. ^ tmp even ifTrue: [ self foo * 2 ] ifFalse: [ self foo / 2 ] proposed result =========================== foo | tmp | tmp := self foo. ^ tmp even ifTrue: [ tmp * 2 ] ifFalse: [ tmp / 2 ] =========================================== note that the proposed solution is not side-effect free. However the given refactoring hardly makes ever sense, since this action can be easily done manually in less time. given that you first have to find the proper menu-item. best cami