diff -ru skeinforge-latest/fabmetheus_utilities/settings.py skeinforge-39/fabmetheus_utilities/settings.py
--- skeinforge-latest/fabmetheus_utilities/settings.py	2011-01-31 18:09:43.000000000 +0100
+++ skeinforge-39/fabmetheus_utilities/settings.py	2011-01-31 17:16:26.000000000 +0100
@@ -563,7 +563,7 @@
 		settingTable = {}
 		for setting in repository.preferences:
 			settingTable[ setting.name ] = setting
-		for (name, value) in overrides[repository.baseName].items():
+		for (name, value) in globalTemporaryOverrides[repository.baseName].items():
 			if name in settingTable:
 				settingTable[name].setValueToString(value)
 			else:
diff -ru skeinforge-latest/skeinforge_application/skeinforge.py skeinforge-39/skeinforge_application/skeinforge.py
--- skeinforge-latest/skeinforge_application/skeinforge.py	2011-01-31 18:09:43.000000000 +0100
+++ skeinforge-39/skeinforge_application/skeinforge.py	2011-01-31 17:15:52.000000000 +0100
@@ -540,8 +540,7 @@
 	'Craft a file, display dialog.'
 	repository = getNewRepository()
 	repository.fileNameInput.value = fileName
-	repository.execute()
-	settings.startMainLoopFromConstructor(repository)
+	settings.startMainLoopFromWindow(repository.execute())
 
 
 class SkeinforgeRepository:
@@ -569,8 +568,10 @@
 	def execute(self):
 		'Skeinforge button has been clicked.'
 		fileNames = skeinforge_polyfile.getFileOrDirectoryTypesUnmodifiedGcode(self.fileNameInput.value, fabmetheus_interpret.getImportPluginFileNames(), self.fileNameInput.wasCancelled)
+                window = None
 		for fileName in fileNames:
-			skeinforge_craft.writeOutput(fileName)
+			window = skeinforge_craft.writeOutput(fileName)
+                return window
 
 	def save(self):
 		'Profile has been saved and profile menu should be updated.'
@@ -600,7 +601,7 @@
 		for prefSpec in options.preferences:
 			(moduleName, prefSpec) = prefSpec.split(':', 1)
 			(prefName, valueName) = prefSpec.split('=', 1)
-			settings.addPreferenceOverride(moduleName, prefName, valueName)
+			settings.temporaryAddPreferenceOverride(moduleName, prefName, valueName)
 	sys.argv = [sys.argv[0]] + args
 	if len( args ) > 0:
 		writeOutput( ' '.join(args) )
diff -ru /Users/kintel/Desktop/Makerbot/39_reprap_python_beanshell/skeinforge_application/skeinforge_plugins/craft_plugins/export.py ./skeinforge_application/skeinforge_plugins/craft_plugins/export.py
--- /Users/kintel/Desktop/Makerbot/39_reprap_python_beanshell/skeinforge_application/skeinforge_plugins/craft_plugins/export.py	2011-01-03 18:36:38.000000000 +0100
+++ ./skeinforge_application/skeinforge_plugins/craft_plugins/export.py	2011-01-31 20:04:00.000000000 +0100
@@ -167,8 +167,8 @@
 	print('File ' + archive.getSummarizedFileName(fileName) + ' is being chain exported.')
 	suffixFileName = fileName[: fileName.rfind('.')]
 	if repository.addExportSuffix.value:
-		suffixFileName += '_export.'
-	suffixFileName += repository.fileExtension.value
+		suffixFileName += '_export'
+	suffixFileName += '.' + repository.fileExtension.value
 	gcodeText = gcodec.getGcodeFileText(fileName, '')
 	procedures = skeinforge_craft.getProcedures('export', gcodeText)
 	gcodeText = skeinforge_craft.getChainTextFromProcedures(fileName, procedures[ : - 1 ], gcodeText)
