Index: lemon/concept/graph_components.h
===================================================================
--- lemon/concept/graph_components.h	(revision 2129)
+++ lemon/concept/graph_components.h	(revision 2181)
@@ -1295,10 +1295,10 @@
       /// ReadWrite map of the nodes.
       ///
-      template <typename Value>
-      class NodeMap : public GraphMap<Graph, Node, Value> {
+      template <typename _Value>
+      class NodeMap : public GraphMap<Graph, Node, _Value> {
       private:
 	NodeMap();
       public:
-        typedef GraphMap<Graph, Node, Value> Parent;
+        typedef GraphMap<MappableGraphComponent, Node, _Value> Parent;
 
 	/// \brief Construct a new map.
@@ -1306,10 +1306,11 @@
 	/// Construct a new map for the graph.
 	/// \todo call the right parent class constructor
-	explicit NodeMap(const Graph& graph) : Parent(graph) {}
+	explicit NodeMap(const MappableGraphComponent& graph) 
+          : Parent(graph) {}
 
 	/// \brief Construct a new map with default value.
 	///
 	/// Construct a new map for the graph and initalise the values.
-	NodeMap(const Graph& graph, const Value& value)
+	NodeMap(const MappableGraphComponent& graph, const _Value& value)
           : Parent(graph, value) {}
 
@@ -1324,5 +1325,5 @@
         template <typename CMap>
         NodeMap& operator=(const CMap&) { 
-          checkConcept<ReadMap<Node, Value>, CMap>();
+          checkConcept<ReadMap<Node, _Value>, CMap>();
           return *this;
         }
@@ -1334,10 +1335,10 @@
       /// ReadWrite map of the edges.
       ///
-      template <typename Value>
-      class EdgeMap : public GraphMap<Graph, Edge, Value> {
+      template <typename _Value>
+      class EdgeMap : public GraphMap<Graph, Edge, _Value> {
       private:
 	EdgeMap();
       public:
-        typedef GraphMap<Graph, Edge, Value> Parent;
+        typedef GraphMap<MappableGraphComponent, Edge, _Value> Parent;
 
 	/// \brief Construct a new map.
@@ -1345,10 +1346,11 @@
 	/// Construct a new map for the graph.
 	/// \todo call the right parent class constructor
-	explicit EdgeMap(const Graph& graph) : Parent(graph) {}
+	explicit EdgeMap(const MappableGraphComponent& graph) 
+          : Parent(graph) {}
 
 	/// \brief Construct a new map with default value.
 	///
 	/// Construct a new map for the graph and initalise the values.
-	EdgeMap(const Graph& graph, const Value& value)
+	EdgeMap(const MappableGraphComponent& graph, const _Value& value)
           : Parent(graph, value) {}
 
@@ -1363,5 +1365,5 @@
         template <typename CMap>
         EdgeMap& operator=(const CMap&) { 
-          checkConcept<ReadMap<Edge, Value>, CMap>();
+          checkConcept<ReadMap<Edge, _Value>, CMap>();
           return *this;
         }
@@ -1432,8 +1434,8 @@
       /// ReadWrite map of the uedges.
       ///
-      template <typename Value>
-      class UEdgeMap : public GraphMap<Graph, UEdge, Value> {  
+      template <typename _Value>
+      class UEdgeMap : public GraphMap<Graph, UEdge, _Value> {  
       public:
-        typedef GraphMap<Graph, UEdge, Value> Parent;
+        typedef GraphMap<MappableUGraphComponent, UEdge, _Value> Parent;
 
 	/// \brief Construct a new map.
@@ -1441,10 +1443,11 @@
 	/// Construct a new map for the graph.
 	/// \todo call the right parent class constructor
-	explicit UEdgeMap(const Graph& graph) : Parent(graph) {}
+	explicit UEdgeMap(const MappableUGraphComponent& graph) 
+          : Parent(graph) {}
 
 	/// \brief Construct a new map with default value.
 	///
 	/// Construct a new map for the graph and initalise the values.
-	UEdgeMap(const Graph& graph, const Value& value)
+	UEdgeMap(const MappableUGraphComponent& graph, const _Value& value)
           : Parent(graph, value) {}
 
@@ -1459,5 +1462,5 @@
         template <typename CMap>
         UEdgeMap& operator=(const CMap&) { 
-          checkConcept<ReadMap<UEdge, Value>, CMap>();
+          checkConcept<ReadMap<UEdge, _Value>, CMap>();
           return *this;
         }
