Index: lemon/concept/graph.h
===================================================================
--- lemon/concept/graph.h	(revision 1470)
+++ lemon/concept/graph.h	(revision 1563)
@@ -407,4 +407,73 @@
       ///
       Node source(Edge) const { return INVALID; }
+
+      /// Gives back the first Node in the iterating order.
+      
+      /// Gives back the first Node in the iterating order.
+      ///     
+      void first(Node&) const {}
+
+      /// Gives back the next Node in the iterating order.
+      
+      /// Gives back the next Node in the iterating order.
+      ///     
+      void next(Node&) const {}
+
+      /// Gives back the first Edge in the iterating order.
+      
+      /// Gives back the first Edge in the iterating order.
+      ///     
+      void first(Edge&) const {}
+      /// Gives back the next Edge in the iterating order.
+      
+      /// Gives back the next Edge in the iterating order.
+      ///     
+      void next(Edge&) const {}
+
+
+      /// Gives back the first of the Edges point to the given Node.
+      
+      /// Gives back the first of the Edges point to the given Node.
+      ///     
+      void firstIn(Edge&, const Node&) const {}
+
+      /// Gives back the next of the Edges points to the given Node.
+
+
+      /// Gives back the next of the Edges points to the given Node.
+      ///
+      void nextIn(Edge&) const {}
+
+      /// Gives back the first of the Edges start from the given Node.
+      
+      /// Gives back the first of the Edges start from the given Node.
+      ///     
+      void firstOut(Edge&, const Node&) const {}
+
+      /// Gives back the next of the Edges start from the given Node.
+      
+      /// Gives back the next of the Edges start from the given Node.
+      ///     
+      void nextOut(Edge&) const {}
+
+      /// \brief The base node of the iterator.
+      ///
+      /// Gives back the base node of the iterator.
+      Node baseNode(const InEdgeIt&) const { return INVALID; }
+
+      /// \brief The running node of the iterator.
+      ///
+      /// Gives back the running node of the iterator.
+      Node runningNode(const InEdgeIt&) const { return INVALID; }
+
+      /// \brief The base node of the iterator.
+      ///
+      /// Gives back the base node of the iterator.
+      Node baseNode(const OutEdgeIt&) const { return INVALID; }
+
+      /// \brief The running node of the iterator.
+      ///
+      /// Gives back the running node of the iterator.
+      Node runningNode(const OutEdgeIt&) const { return INVALID; }
       /// Read write map of the nodes to type \c T.
 
Index: lemon/concept/graph_component.h
===================================================================
--- lemon/concept/graph_component.h	(revision 1494)
+++ lemon/concept/graph_component.h	(revision 1563)
@@ -678,18 +678,39 @@
       /// of a graph.
       typedef GraphIncIterator<Graph, Edge, 'o'> OutEdgeIt;
-    };
+
+      /// \brief The base node of the iterator.
+      ///
+      /// Gives back the base node of the iterator.
+      Node baseNode(const InEdgeIt&) const { return INVALID; }
+
+      /// \brief The running node of the iterator.
+      ///
+      /// Gives back the running node of the iterator.
+      Node runningNode(const InEdgeIt&) const { return INVALID; }
+
+      /// \brief The base node of the iterator.
+      ///
+      /// Gives back the base node of the iterator.
+      Node baseNode(const OutEdgeIt&) const { return INVALID; }
+
+      /// \brief The running node of the iterator.
+      ///
+      /// Gives back the running node of the iterator.
+      Node runningNode(const OutEdgeIt&) const { return INVALID; }
+
     
-    template <typename _Graph> 
-    struct Constraints {
-      void constraints() {
-  	checkConcept< BaseGraphComponent, _Graph>();
-
-	checkConcept<GraphIterator<_Graph, typename _Graph::Edge>,
-	  typename _Graph::EdgeIt >();
-	checkConcept<GraphIterator<_Graph, typename _Graph::Node>,
-	  typename _Graph::NodeIt >();
-	checkConcept<GraphIncIterator<_Graph>, typename _Graph::InEdgeIt >();
-	checkConcept<GraphIncIterator<_Graph>, typename _Graph::OutEdgeIt >();
-      }
+      template <typename _Graph> 
+      struct Constraints {
+	void constraints() {
+	  checkConcept< BaseGraphComponent, _Graph>();
+	  
+	  checkConcept<GraphIterator<_Graph, typename _Graph::Edge>,
+	    typename _Graph::EdgeIt >();
+	  checkConcept<GraphIterator<_Graph, typename _Graph::Node>,
+	    typename _Graph::NodeIt >();
+	  checkConcept<GraphIncIterator<_Graph>, typename _Graph::InEdgeIt>();
+	  checkConcept<GraphIncIterator<_Graph>, typename _Graph::OutEdgeIt>();
+	}
+      };
     };
 
