diff --git a/gtk2_ardour/port_group.cc b/gtk2_ardour/port_group.cc index 334d2348f1..790f64b249 100644 --- a/gtk2_ardour/port_group.cc +++ b/gtk2_ardour/port_group.cc @@ -523,16 +523,20 @@ PortGroupList::gather (ARDOUR::Session* session, ARDOUR::DataType type, bool inp if ((type == DataType::MIDI || type == DataType::NIL)) { ControlProtocolManager& m = ControlProtocolManager::instance (); + std::shared_ptr sf (new Bundle (_("Control Surface"), inputs)); for (list::iterator i = m.control_protocol_info.begin(); i != m.control_protocol_info.end(); ++i) { if ((*i)->protocol) { list > b = (*i)->protocol->bundles (); for (list >::iterator j = b.begin(); j != b.end(); ++j) { if ((*j)->ports_are_inputs() == inputs) { - program->add_bundle (*j); + sf->add_channels_from_bundle (*j); } } } } + if (sf->n_total () > 0) { + program->add_bundle (sf); + } } /* virtual keyboard */