Index: wp-includes/js/autosave.js
===================================================================
--- wp-includes/js/autosave.js	(revision 7393)
+++ wp-includes/js/autosave.js	(working copy)
@@ -8,12 +8,6 @@
 
 	//Disable autosave after the form has been submitted
 	$("#post").submit(function() { $.cancel(autosavePeriodical); });
-
-	// Autosave early on for a new post.  Why?  Should this only be run once?
-	$("#content").keypress(function() {
-		if ( 1 === ( $(this).val().length % 15 ) && 1 > parseInt($("#post_ID").val(),10) )
-			setTimeout(autosave, 5000);
-	});
 });
 
 // called when autosaving pre-existing post
@@ -148,7 +142,7 @@
 		post_data["post_name"] = jQuery('#post_name').val();
 
 	// Nothing to save or no change.
-	if(post_data["post_title"].length==0 || post_data["content"].length==0 || post_data["post_title"] + post_data["content"] == autosaveLast) {
+	if( (post_data["post_title"].length==0 && post_data["content"].length==0) || post_data["post_title"] + post_data["content"] == autosaveLast) {
 		doAutoSave = false
 	}
 
Index: wp-includes/general-template.php
===================================================================
--- wp-includes/general-template.php	(revision 7393)
+++ wp-includes/general-template.php	(working copy)
@@ -977,6 +977,7 @@
             e = e || window.event;
             if (e.keyCode == 9 && !e.shiftKey && !e.controlKey && !e.altKey) {
                 if ( tinyMCE.activeEditor ) {
+                    if ( (jQuery("#post_ID").val() < 1) && (jQuery("#title").val().length > 0) ) { autosave(); }
                     e = null;
                     if ( tinyMCE.activeEditor.isHidden() ) return true;
                     tinyMCE.activeEditor.focus();
Index: wp-includes/script-loader.php
===================================================================
--- wp-includes/script-loader.php	(revision 7393)
+++ wp-includes/script-loader.php	(working copy)
@@ -47,7 +47,7 @@
 			'broken' => 'AJAX is teh b0rked.'
 		) );
 
-		$this->add( 'autosave', '/wp-includes/js/autosave.js', array('schedule', 'wp-ajax-response'), '20080312' );
+		$this->add( 'autosave', '/wp-includes/js/autosave.js', array('schedule', 'wp-ajax-response'), '20080317' );
 
 		$this->add( 'wp-ajax', '/wp-includes/js/wp-ajax.js', array('prototype'), '20070306');
 		$this->localize( 'wp-ajax', 'WPAjaxL10n', array(
@@ -141,7 +141,7 @@
 				'save' => __('Save'),
 				'cancel' => __('Cancel'),
 			) );
-			$this->add( 'post', '/wp-admin/js/post.js', array('suggest', 'jquery-ui-tabs', 'wp-lists', 'postbox', 'slug'), '20080221' );
+			$this->add( 'post', '/wp-admin/js/post.js', array('suggest', 'jquery-ui-tabs', 'wp-lists', 'postbox', 'slug'), '20080318' );
 			$this->localize( 'post', 'postL10n', array(
 				'tagsUsed' =>  __('Tags used on this post:'),
 				'add' => attribute_escape(__('Add')),
@@ -150,7 +150,7 @@
 				'cancel' => __('Cancel'),
 				'edit' => __('Edit'),
 			) );
-			$this->add( 'page', '/wp-admin/js/page.js', array('jquery', 'slug', 'postbox'), '20080208' );
+			$this->add( 'page', '/wp-admin/js/page.js', array('jquery', 'slug', 'postbox'), '20080318' );
 			$this->localize( 'page', 'postL10n', array(
 				'cancel' => __('Cancel'),
 				'edit' => __('Edit'),
Index: wp-admin/js/page.js
===================================================================
--- wp-admin/js/page.js	(revision 7393)
+++ wp-admin/js/page.js	(working copy)
@@ -2,6 +2,8 @@
 	add_postbox_toggles('page');
 	make_slugedit_clickable();
 
+	jQuery('#title').blur( function() { if ( (jQuery("#post_ID").val() > 0) || (jQuery("#title").val().length == 0) ) return; autosave(); } );
+
 	// hide advanced slug field
 	jQuery('#pageslugdiv').hide();
 
Index: wp-admin/js/post.js
===================================================================
--- wp-admin/js/post.js	(revision 7393)
+++ wp-admin/js/post.js	(working copy)
@@ -62,11 +62,6 @@
 	// postboxes
 	add_postbox_toggles('post');
 
-	// If no tags on the page, skip the tag and category stuff.
-	if ( !jQuery('#tags-input').size() ) {
-		return;
-	}
-
 	// Editable slugs
 	make_slugedit_clickable();
 
@@ -91,6 +86,8 @@
 	jQuery('#publish').click( tag_save_on_publish );
 	jQuery('#save-post').click( tag_save_on_publish );
 
+	jQuery('#title').blur( function() { if ( (jQuery("#post_ID").val() > 0) || (jQuery("#title").val().length == 0) ) return; autosave(); } );
+
 	// auto-suggest stuff
 	jQuery('#newtag').suggest( 'admin-ajax.php?action=ajax-tag-search', { delay: 500, minchars: 2 } );
 	jQuery('#newtag').keypress( tag_press_key );
