Index: gtk2_ardour/mixer_strip.cc
===================================================================
--- gtk2_ardour/mixer_strip.cc	(revision 1062)
+++ gtk2_ardour/mixer_strip.cc	(working copy)
@@ -759,45 +759,51 @@
 	Gtkmm2ext::UI::instance()->call_slot (mem_fun(*this, &MixerStrip::update_output_display));
 }
 
-void
-MixerStrip::comment_button_clicked ()
-{
-	if (comment_window == 0) {
-		setup_comment_editor ();
-	}
+void 
+MixerStrip::comment_editor_done_editing() {
+	string str =  comment_area->get_buffer()->get_text();
+	if (_route->comment() != str) {
+		_route->set_comment (str, this);
 
-        int x, y, cw_width, cw_height;
-
-	if (comment_window->is_visible()) {
-	       string str =  comment_area->get_buffer()->get_text();
-	       if (_route->comment() != str) {
-		 _route->set_comment (str, this);
-
 		 switch (_width) {
 		   
 		 case Wide:
 		   if (! str.empty()) {
-		     comment_button.set_label (_("*Comments*"));
+			 comment_button.set_label (_("*Comments*"));
 		   } else {
-		     comment_button.set_label (_("Comments"));
-		      }
+			 comment_button.set_label (_("Comments"));
+			  }
 		   break;
 		   
 		 case Narrow:
 		   if (! str.empty()) {
-		     comment_button.set_label (_("*Cmt*"));
+			 comment_button.set_label (_("*Cmt*"));
 		   } else {
-		     comment_button.set_label (_("Cmt"));
+			 comment_button.set_label (_("Cmt"));
 		   } 
 		   break;
 		 }
 		 
 		 ARDOUR_UI::instance()->tooltips().set_tip (comment_button, 
-							    str.empty() ? _("Click to Add/Edit Comments") : str);
-	       }
-	       comment_window->hide ();
-	       return;
-	} 
+			str.empty() ? _("Click to Add/Edit Comments") : str);
+	}
+	
+}
+
+void
+MixerStrip::comment_button_clicked ()
+{
+	if (comment_window == 0) {
+		setup_comment_editor ();
+	}
+
+    int x, y, cw_width, cw_height;
+
+	if (comment_window->is_visible()) {
+		comment_window->hide ();
+		return;
+	}
+
 	comment_window->get_size (cw_width, cw_height);
 	comment_window->get_position(x, y);
 	comment_window->move(x, y - (cw_height / 2) - 45);
@@ -821,6 +827,7 @@
 	comment_window = new ArdourDialog (title, false);
 	comment_window->set_position (Gtk::WIN_POS_MOUSE);
 	comment_window->set_skip_taskbar_hint (true);
+	comment_window->signal_hide().connect (mem_fun(*this, &MixerStrip::comment_editor_done_editing));
 
 	comment_area = manage (new TextView());
 	comment_area->set_name ("MixerTrackCommentArea");
Index: gtk2_ardour/mixer_strip.h
===================================================================
--- gtk2_ardour/mixer_strip.h	(revision 1062)
+++ gtk2_ardour/mixer_strip.h	(working copy)
@@ -153,6 +153,7 @@
 	Gtk::TextView* comment_area;
 	Gtk::Button    comment_button;
 
+	void comment_editor_done_editing();
 	void setup_comment_editor ();
 	void comment_button_clicked ();
 
