Index: gtk2_ardour/lv2_plugin_ui.cc
===================================================================
--- gtk2_ardour/lv2_plugin_ui.cc	(revision 11501)
+++ gtk2_ardour/lv2_plugin_ui.cc	(working copy)
@@ -134,6 +134,7 @@
 	, _gui_widget(NULL)
 	, _values(NULL)
 	, _external_ui_ptr(NULL)
+	, _packed_once(false)
 	, _inst(NULL)
 {
 }
@@ -209,17 +210,20 @@
 	_external_ui_ptr = NULL;
 	if (_inst) {
 		if (!is_external_ui) {
-			Gtk::HBox* box = manage (new Gtk::HBox);
-			box->set_spacing (6);
-			box->set_border_width (6);
-			box->pack_end (focus_button, false, false);
-			box->pack_end (bypass_button, false, false, 10);
-			box->pack_end (delete_button, false, false);
-			box->pack_end (save_button, false, false);
-			box->pack_end (add_button, false, false);
-			box->pack_end (_preset_combo, false, false);
-			box->show_all();
-			pack_start(*box, false, false);
+  		        if (!_packed_once) {
+			        Gtk::HBox* box = manage (new Gtk::HBox);
+				box->set_spacing (6);
+				box->set_border_width (6);
+				box->pack_end (focus_button, false, false);
+				box->pack_end (bypass_button, false, false, 10);
+				box->pack_end (delete_button, false, false);
+				box->pack_end (save_button, false, false);
+				box->pack_end (add_button, false, false);
+				box->pack_end (_preset_combo, false, false);
+				box->show_all();
+				pack_start(*box, false, false);
+				_packed_once = true;
+			}
 
 			GtkWidget* c_widget = (GtkWidget*)GET_WIDGET(_inst);
 			_gui_widget = Glib::wrap(c_widget);
Index: gtk2_ardour/lv2_plugin_ui.h
===================================================================
--- gtk2_ardour/lv2_plugin_ui.h	(revision 11501)
+++ gtk2_ardour/lv2_plugin_ui.h	(working copy)
@@ -74,6 +74,8 @@
 	LV2_Feature _external_ui_feature;
 	struct lv2_external_ui* _external_ui_ptr;
 	Gtk::Window* _win_ptr;
+	
+	bool _packed_once;
 
 	static void on_external_ui_closed(void* controller);
 
