diff -u ./libecasound/eca-engine.cpp ../ecasound_patches/eca-engine.cpp --- ./libecasound/eca-engine.cpp 2006-01-23 02:13:12.000000000 +1100 +++ ../ecasound_patches/eca-engine.cpp 2005-10-31 00:58:04.000000000 +1100 @@ -1192,20 +1190,20 @@ // --- case ep_ctrl_select: { csetup_repp->active_ctrl_index_rep = static_cast(item.second); - if (csetup_repp->active_ctrl_index_rep - 1 < static_cast((*chains_repp)[csetup_repp->active_ctrl_index_rep]->number_of_controllers())) - (*chains_repp)[csetup_repp->active_ctrl_index_rep]->select_controller(csetup_repp->active_ctrl_index_rep); + if (csetup_repp->active_ctrl_index_rep - 1 < static_cast((*chains_repp)[csetup_repp->active_chain_index_rep]->number_of_controllers())) + (*chains_repp)[csetup_repp->active_chain_index_rep]->select_controller(csetup_repp->active_ctrl_index_rep); else csetup_repp->active_ctrl_index_rep = 0; break; } case ep_ctrlp_select: { csetup_repp->active_ctrl_param_index_rep = static_cast(item.second); - (*chains_repp)[csetup_repp->active_ctrl_index_rep]->select_controller_parameter(csetup_repp->active_ctrl_param_index_rep); + (*chains_repp)[csetup_repp->active_chain_index_rep]->select_controller_parameter(csetup_repp->active_ctrl_param_index_rep); break; } case ep_ctrlp_value: { assert(chains_repp != 0); - (*chains_repp)[csetup_repp->active_ctrl_index_rep]->set_controller_parameter(item.second); + (*chains_repp)[csetup_repp->active_chain_index_rep]->set_controller_parameter(item.second); break; } // ---