Index: TaskListWindow.cs
===================================================================
--- TaskListWindow.cs	(revision 1649)
+++ TaskListWindow.cs	(working copy)
@@ -684,14 +684,16 @@
 			
 			while (true) {
 				summary = String.Format (Catalog.GetString ("New Task {0}"), 
-							    ++new_num);
+								++new_num);
 				if (manager.Find (summary) == null)
 					break;
 			}
 			
 			try {
 				expecting_newly_created_task = true;
-				manager.Create (summary);
+				Task newTask = manager.Create (summary);
+				tree.SetCursor(manager.GetTreePathFromTask(newTask), summary_column, true);
+				 
 			} catch (Exception e) {
 				expecting_newly_created_task = false;
 				Logger.Error ("Could not create a new task with summary: {0}:{1}", summary, e.Message);
Index: TaskManager.cs
===================================================================
--- TaskManager.cs	(revision 1649)
+++ TaskManager.cs	(working copy)
@@ -55,7 +55,19 @@
 	#endregion // Public Properties
 
 	#region Public Methods
+
 		/// <summary>
+		/// Gets a Gtk.TreePath for the passed task.
+		/// </summary>
+		public Gtk.TreePath GetTreePathFromTask(Task task)
+		{
+			if (!task_iters.ContainsKey(task.Uri))
+				throw new Exception("Cannot find task in tree");
+
+			return tasks.GetPath(task_iters[task.Uri]);
+		}
+
+		/// <summary>
 		/// Delete the specified task from the system.
 		/// </summary>
 		public void Delete (Task task) 
@@ -68,7 +80,7 @@
 
 					string archive_path = 
 						Path.Combine (archive_dir, 
-							      Path.GetFileName (task.FilePath));
+								  Path.GetFileName (task.FilePath));
 					if (File.Exists (archive_path))
 						File.Delete (archive_path);
 
@@ -266,8 +278,8 @@
 					}
 				} catch (System.Xml.XmlException e) {
 					Logger.Log ("Error parsing task XML, skipping \"{0}\": {1}",
-						    file_path,
-						    e.Message);
+							file_path,
+							e.Message);
 				}
 			}
 			

