  In this paper we investigate the structure of the fundamental polytope used
in the Linear Programming decoding introduced by Feldman, Karger and
Wainwright. We begin by showing that for expander codes, every fractional
pseudocodeword always has at least a constant fraction of non-integral bits. We
then prove that for expander codes, the active set of any fractional
pseudocodeword is smaller by a constant fraction than the active set of any
codeword. We further exploit these geometrical properties to devise an improved
decoding algorithm with the same complexity order as LP decoding that provably
performs better, for any blocklength. It proceeds by guessing facets of the
polytope, and then resolving the linear program on these facets. While the LP
decoder succeeds only if the ML codeword has the highest likelihood over all
pseudocodewords, we prove that the proposed algorithm, when applied to suitable
expander codes, succeeds unless there exist a certain number of
pseudocodewords, all adjacent to the ML codeword on the LP decoding polytope,
and with higher likelihood than the ML codeword. We then describe an extended
algorithm, still with polynomial complexity, that succeeds as long as there are
at most polynomially many pseudocodewords above the ML codeword.
