It looks like the first instrument code affected a couple of songs that aren't supposed to have requirements. The proper songs seem to have an instrument listed as both a component and a focus item. The following change fixes it for all the songs that I know of.
Code:
Index: zone/spells.cpp
===================================================================
--- zone/spells.cpp (revision 376)
+++ zone/spells.cpp (working copy)
@@ -882,8 +882,12 @@
// bard components are requirements for a certain instrument type, not a specific item
if(bard_song_mode) {
bool HasInstrument = true;
-
- switch (component) {
+ int InstComponent = spells[spell_id].NoexpendReagent[0];
+
+ switch (InstComponent) {
+ case -1:
+ continue; // no instrument required, go to next component
+
// percussion songs (13000 = hand drum)
case 13000:
if(itembonuses.percussionMod == 0) { // check for the appropriate instrument type