Index: boost/graph/leda_graph.hpp
===================================================================
--- boost/graph/leda_graph.hpp	(Revision 76325)
+++ boost/graph/leda_graph.hpp	(Arbeitskopie)
@@ -2,6 +2,7 @@
 // Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
 // Copyright 2004 The Trustees of Indiana University.
 // Copyright 2007 University of Karlsruhe
+// Copyright 2011, 2012 Jens Mueller
 // Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek, Douglas Gregor,
 //          Jens Mueller
 //
@@ -47,13 +48,12 @@
       : public iterator_facade<adjacency_iterator,
                                leda::node,
                                bidirectional_traversal_tag,
-                               leda::node,
-                               const leda::node*>
+                               leda::node>
     {
     public:
-      adjacency_iterator(leda::node node = 0, 
+      adjacency_iterator(leda::edge edge = 0, 
                       const leda::GRAPH<vtype, etype>* g = 0)
-        : base(node), g(g) {}
+        : base(edge), g(g) {}
     private:
       leda::node dereference() const { return leda::target(base); }
 
@@ -73,13 +73,12 @@
       : public iterator_facade<out_edge_iterator,
                                leda::edge,
                                bidirectional_traversal_tag,
-                               const leda::edge&,
-                               const leda::edge*>
+                               const leda::edge&>
     {
     public:
-      out_edge_iterator(leda::node node = 0, 
+      out_edge_iterator(leda::edge edge = 0, 
                       const leda::GRAPH<vtype, etype>* g = 0)
-        : base(node), g(g) {}
+        : base(edge), g(g) {}
 
     private:
       const leda::edge& dereference() const { return base; }
@@ -100,13 +99,12 @@
       : public iterator_facade<in_edge_iterator,
                                leda::edge,
                                bidirectional_traversal_tag,
-                               const leda::edge&,
-                               const leda::edge*>
+                               const leda::edge&>
     {
     public:
-      in_edge_iterator(leda::node node = 0, 
+      in_edge_iterator(leda::edge edge = 0, 
                       const leda::GRAPH<vtype, etype>* g = 0)
-        : base(node), g(g) {}
+        : base(edge), g(g) {}
 
     private:
       const leda::edge& dereference() const { return base; }
@@ -127,8 +125,7 @@
       : public iterator_facade<vertex_iterator,
                                leda::node,
                                bidirectional_traversal_tag,
-                               const leda::node&,
-                               const leda::node*>
+                               const leda::node&>
     {
     public:
       vertex_iterator(leda::node node = 0, 
@@ -154,8 +151,7 @@
       : public iterator_facade<edge_iterator,
                                leda::edge,
                                bidirectional_traversal_tag,
-                               const leda::edge&,
-                               const leda::edge*>
+                               const leda::edge&>
     {
     public:
       edge_iterator(leda::edge edge = 0, 
@@ -183,6 +179,9 @@
     typedef int vertices_size_type;
     typedef int edges_size_type;
     typedef int degree_size_type;
+    
+    typedef vtype vertex_property_type;
+    typedef etype edge_property_type;
   };
 
 
@@ -196,8 +195,7 @@
       : public iterator_facade<adjacency_iterator,
                                leda::node,
                                bidirectional_traversal_tag,
-                               leda::node,
-                               const leda::node*>
+                               leda::node>
     {
     public:
       adjacency_iterator(leda::edge edge = 0, 
@@ -223,8 +221,7 @@
       : public iterator_facade<out_edge_iterator,
                                leda::edge,
                                bidirectional_traversal_tag,
-                               const leda::edge&,
-                               const leda::edge*>
+                               const leda::edge&>
     {
     public:
       out_edge_iterator(leda::edge edge = 0, 
@@ -250,8 +247,7 @@
       : public iterator_facade<in_edge_iterator,
                                leda::edge,
                                bidirectional_traversal_tag,
-                               const leda::edge&,
-                               const leda::edge*>
+                               const leda::edge&>
     {
     public:
       in_edge_iterator(leda::edge edge = 0, 
@@ -277,8 +273,7 @@
       : public iterator_facade<vertex_iterator,
                                leda::node,
                                bidirectional_traversal_tag,
-                               const leda::node&,
-                               const leda::node*>
+                               const leda::node&>
     {
     public:
       vertex_iterator(leda::node node = 0, 
@@ -304,8 +299,7 @@
       : public iterator_facade<edge_iterator,
                                leda::edge,
                                bidirectional_traversal_tag,
-                               const leda::edge&,
-                               const leda::edge*>
+                               const leda::edge&>
     {
     public:
       edge_iterator(leda::edge edge = 0, 
@@ -391,7 +385,7 @@
   {
     typedef typename graph_traits< leda::GRAPH<vtype,etype> >
       ::out_edge_iterator Iter;
-    return std::make_pair( Iter(g.first_adj_edge(u,0),&g), Iter(0,&g) );
+    return std::make_pair( Iter(g.first_adj_edge(u),&g), Iter(0,&g) );
   }
 
   template <class vtype, class etype>
@@ -404,7 +398,7 @@
   {
     typedef typename graph_traits< leda::GRAPH<vtype,etype> >
       ::in_edge_iterator Iter;
-    return std::make_pair( Iter(g.first_adj_edge(u,1),&g), Iter(0,&g) );
+    return std::make_pair( Iter(g.first_in_edge(u),&g), Iter(0,&g) );
   }
 
   template <class vtype, class etype>
@@ -417,7 +411,7 @@
   {
     typedef typename graph_traits< leda::GRAPH<vtype,etype> >
       ::adjacency_iterator Iter;
-    return std::make_pair( Iter(g.first_adj_edge(u,0),&g), Iter(0,&g) );
+    return std::make_pair( Iter(g.first_adj_edge(u),&g), Iter(0,&g) );
   }
 
   template <class vtype, class etype>
@@ -482,11 +476,11 @@
   {
     typename graph_traits< leda::GRAPH<vtype,etype> >::out_edge_iterator ei, ei_end;
     for (boost::tie(ei, ei_end)=out_edges(u,g); ei!=ei_end; ei++)
-      remove_edge(*ei);
-
+      g.del_edge(*ei);
+    
     typename graph_traits< leda::GRAPH<vtype,etype> >::in_edge_iterator iei, iei_end;
     for (boost::tie(iei, iei_end)=in_edges(u,g); iei!=iei_end; iei++)
-      remove_edge(*iei);
+      g.del_edge(*iei);
   }
 
   template <class vtype, class etype>
