  Subspace codes were introduced in order to correct errors and erasures for
randomized network coding, in the case where network topology is unknown (the
noncoherent case). Subspace codes are indeed collections of subspaces of a
certain vector space over a finite field. The Koetter-Kschischang construction
of subspace codes are similar to Reed-Solomon codes in that codewords are
obtained by evaluating certain (linearized) polynomials. In this paper, we
consider the problem of list-decoding the Koetter-Kschischang subspace codes.
In a sense, we are able to achieve for these codes what Sudan was able to
achieve for Reed-Solomon codes. In order to do so, we have to modify and
generalize the original Koetter-Kschischang construction in many important
respects. The end result is this: for any integer $L$, our list-$L$ decoder
guarantees successful recovery of the message subspace provided that the
normalized dimension of the error is at most $ L - \frac{L(L+1)}{2}R $ where
$R$ is the normalized packet rate. Just as in the case of Sudan's list-decoding
algorithm, this exceeds the previously best known error-correction radius
$1-R$, demonstrated by Koetter and Kschischang, for low rates $R$.
