Should there be a break here?  I suspect you could convert the ForEAch(*fiter) to (=if fiter->first())