Index: gtk2_ardour/crossfade_edit.cc
===================================================================
--- gtk2_ardour/crossfade_edit.cc	(revision 1845)
+++ gtk2_ardour/crossfade_edit.cc	(working copy)
@@ -721,6 +721,20 @@
 void
 CrossfadeEditor::apply_preset (Preset *preset)
 {
+  
+	WhichFade wf =  find(fade_in_presets->begin(), fade_in_presets->end(), preset) != fade_in_presets->end() ? In : Out;
+	
+	if (current != wf) {
+	  
+	      	if (wf == In) {
+			select_in_button.clicked();
+		} else {
+			select_out_button.clicked();
+		}
+		
+		curve_select_clicked (wf);
+	}  
+	
 	for (list<Point*>::iterator i = fade[current].points.begin(); i != fade[current].points.end(); ++i) {
 		delete *i;
 	}
@@ -962,14 +976,6 @@
 			(*i)->box->show ();
 		}
 
-		for (vector<Button*>::iterator i = fade_out_buttons.begin(); i != fade_out_buttons.end(); ++i) {
-			(*i)->set_sensitive (false);
-		}
-
-		for (vector<Button*>::iterator i = fade_in_buttons.begin(); i != fade_in_buttons.end(); ++i) {
-			(*i)->set_sensitive (true);
-		}
-
 	} else {
 
 		for (vector<ArdourCanvas::WaveView*>::iterator i = fade[In].waves.begin(); i != fade[In].waves.end(); ++i) {
@@ -993,14 +999,6 @@
 			(*i)->box->show();
 		}
 
-		for (vector<Button*>::iterator i = fade_out_buttons.begin(); i != fade_out_buttons.end(); ++i) {
-			(*i)->set_sensitive (true);
-		}
-
-		for (vector<Button*>::iterator i = fade_in_buttons.begin(); i != fade_in_buttons.end(); ++i) {
-			(*i)->set_sensitive (false);
-		}
-
 	}
 }
 
