There is no need to try to switch pools in select_pool since the current pool is actually not affected by the choice of pool to get work from.
diff --git a/cgminer.c b/cgminer.c
index 0f88272..8dc1deb 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -1955,11 +1955,9 @@ static inline struct pool *select_pool(bool lagging)
if (pool_strategy == POOL_BALANCE)
return select_balanced(cp);
- if (pool_strategy != POOL_LOADBALANCE && (!lagging || opt_fail_only)) {
- if (cp->prio != 0)
- switch_pools(NULL);
- pool = current_pool();
- } else
+ if (pool_strategy != POOL_LOADBALANCE && (!lagging || opt_fail_only))
+ pool = cp;
+ else
pool = NULL;
while (!pool) {