diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 299bb38523..838588487b 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -2245,9 +2245,19 @@ ARDOUR_UI::get_session_parameters (bool should_be_new) if (!should_be_new && !ARDOUR_COMMAND_LINE::session_name.empty()) { - session_path = Glib::path_get_dirname (ARDOUR_COMMAND_LINE::session_name); + /* if they named a specific statefile, use it, otherwise they are + just giving a session folder, and we want to use it as is + to find the session. + */ + + if (ARDOUR_COMMAND_LINE::session_name.find (statefile_suffix) != string::npos) { + session_path = Glib::path_get_dirname (ARDOUR_COMMAND_LINE::session_name); + } else { + session_path = ARDOUR_COMMAND_LINE::session_name; + } + session_name = Glib::path_get_basename (ARDOUR_COMMAND_LINE::session_name); - + } else { run_startup (should_be_new);