Focus in the article is on necessary optimality conditions for bilevel programming problems. We first identify approaches that seem to be promising. Then, two such approaches are investigated. Using the nonexistence of a descent direction for the objective function within the tangent cone to the feasible set as necessary optimality condition we need efficient ways to describe this tangent cone. We describe possibilities for this in three different special cases. We conclude this article with the second approach applying Mordukhovich's coderivative to an appropriately reformulated bilevel programming problem. © 2006 Taylor & Francis.