bug 321 - fix to the previous patch for when we have multiple real providers

If the provider list contains multiple providers that actually provide
a set (set_head != NULL) then we want to use those providers and
not skip them