  We show that for each fixed $k$, the problem of finding $k$ pairwise
vertex-disjoint directed paths between given source-sink pairs in a planar
directed graph is solvable in polynomial time. In fact, it suffices to fix the
number of faces needed to cover all sources and sinks. Moreover, the method can
be extended to any fixed compact orientable surface (instead of the plane) and
to rooted trees (instead of paths).
  Our approach is algebraic and is based on cohomology over graph (nonabelian)
groups. More precisely, let $D=(V,A)$ be a directed graph and let $(G,\cdot)$
be a group. Call two function $\phi,\psi:A\to G$ {\em cohomologous} if there
exists a function $p:V\to G$ such that $p(u)\cdot\phi(a)\cdot
p(w)^{-1}=\psi(a)$ for each arc $a=(u,w)$. Now given a function $\phi:A\to G$
we want to find a function $\psi$ cohomologous to $\phi$ such that each
$\psi(a)$ belongs to a prescribed subset $H(a)$ of $G$. We give a
polynomial-time algorithm for this problem in case $G$ is a graph group and
each $H(a)$ is closed (i.e., if word $xyz$ belongs to $H(a)$ then also word $y$
belongs to $H(a)$).
  The method also implies that such a $\psi$ exists, if and only if for each
$s\in V$ and each pair $P,Q$ of (undirected) $s-s$ paths there exists an $x\in
G$ such that $x\cdot\phi(P)\cdot x^{-1}\in H(P)$ and $x\cdot\phi(Q)\cdot
x^{-1}\in H(P)$. (Here $\phi(P)$ is the product of the $\phi(a)$ over the arcs
in $P$. Similarly, $H(P)$ is the (group subset) product of the $H(a)$.)
