Mathematical models for financial asset prices which include, for example, stochastic volatility or jumps are incomplete in that derivative securities are generally not replicable by trading in the underlying. In earlier work [Proc. R. Soc. London, 2004], the first author provided a geometric condition under which trading in the underlying and a finite number of vanilla options completes the market. We complement this result in several ways. First, we show that the geometric condition is not necessary and a weaker, necessary and sufficient, condition is presented. While this condition is generally not directly verifiable, we show that it simplifies to matrix non-degeneracy in a single point when the pricing functions are real analytic functions. In particular, any stochastic volatility model is then completed with an arbitrary European type option. Further, we show that adding path-dependent options such as a variance swap to the set of primary assets, instead of plain vanilla options, also completes the market.