  The classical algorithm of Agrawal, Klein and Ravi [SIAM J. Comput., 24
(1995), pp. 440-456], stated in the setting of the primal-dual schema by
Goemans and Williamson [SIAM J. Comput., 24 (1995), pp. 296-317] uses the
undirected cut relaxation for the Steiner forest problem. Its approximation
ratio is $2-\frac{1}{k}$, where $k$ is the number of terminal pairs. A variant
of this algorithm more recently proposed by K\"onemann et al. [SIAM J. Comput.,
37 (2008), pp. 1319-1341] is based on the lifted cut relaxation. In this paper,
we continue this line of work and consider the bidirected cut relaxation for
the Steiner forest problem, which lends itself to a novel algorithmic idea
yielding the same approximation ratio as the classical algorithm. In doing so,
we introduce an extension of the primal-dual schema in which we run two
different phases to satisfy connectivity requirements in both directions. This
reveals more about the combinatorial structure of the problem. In particular,
there are examples on which the classical algorithm fails to give a good
approximation, but the new algorithm finds a near-optimal solution.
