diff --git a/core/js/Story.js b/core/js/Story.js
index cfb3512..c9d387e 100644
--- a/core/js/Story.js
+++ b/core/js/Story.js
@@ -584,12 +584,15 @@ Story.prototype.saveTiddler = function(title,minorUpdate)
 		var newTitle = fields.title || title;
 		if(!store.tiddlerExists(newTitle))
 			newTitle = newTitle.trim();
-		if(store.tiddlerExists(newTitle) && newTitle != title) {
-			if(!confirm(config.messages.overwriteWarning.format([newTitle.toString()])))
-				return null;
-		}
-		if(newTitle != title)
+		var rename = false;
+		if(newTitle != title) {
+			rename = true;
+			if(store.tiddlerExists(newTitle)) {
+				if(!confirm(config.messages.overwriteWarning.format([newTitle.toString()])))
+					return null;
+			}
 			this.closeTiddler(newTitle,false);
+		}
 		tiddlerElem.id = this.tiddlerId(newTitle);
 		tiddlerElem.setAttribute("tiddler",newTitle);
 		tiddlerElem.setAttribute("template",DEFAULT_VIEW_TEMPLATE);
@@ -599,7 +602,11 @@ Story.prototype.saveTiddler = function(title,minorUpdate)
 		if(!store.tiddlerExists(newTitle))
 			minorUpdate = false;
 		var newDate = new Date();
-		var extendedFields = store.tiddlerExists(newTitle) ? store.fetchTiddler(newTitle).fields : (newTitle!=title && store.tiddlerExists(title) ? store.fetchTiddler(title).fields : merge({},config.defaultCustomFields));
+		if(store.tiddlerExists(newTitle) && !rename) {
+			var extendedFields = store.fetchTiddler(newTitle).fields
+		} else {
+			extendedFields = rename && store.tiddlerExists(title) ? store.fetchTiddler(title).fields : merge({},config.defaultCustomFields)
+		}
 		for(var n in fields) {
 			if(!TiddlyWiki.isStandardField(n))
 				extendedFields[n] = fields[n];

