Index: lemon/concepts/bpgraph.h
===================================================================
--- lemon/concepts/bpgraph.h	(revision 1130)
+++ lemon/concepts/bpgraph.h	(revision 1210)
@@ -96,4 +96,9 @@
         ///
         Node(const Node&) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const Node &operator=(const Node&) { return *this; }
 
         /// %Invalid constructor \& conversion.
@@ -144,4 +149,9 @@
         ///
         RedNode(const RedNode&) : Node() { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const RedNode &operator=(const RedNode&) { return *this; }
 
         /// %Invalid constructor \& conversion.
@@ -171,4 +181,10 @@
         ///
         BlueNode(const BlueNode&) : Node() { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const BlueNode &operator=(const BlueNode&) { return *this; }
+
 
         /// %Invalid constructor \& conversion.
@@ -201,4 +217,9 @@
         ///
         RedNodeIt(const RedNodeIt& n) : RedNode(n) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const RedNodeIt &operator=(const RedNodeIt&) { return *this; }
         /// %Invalid constructor \& conversion.
 
@@ -260,4 +281,9 @@
         ///
         BlueNodeIt(const BlueNodeIt& n) : BlueNode(n) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const BlueNodeIt &operator=(const BlueNodeIt&) { return *this; }
         /// %Invalid constructor \& conversion.
 
@@ -319,4 +345,9 @@
         ///
         NodeIt(const NodeIt& n) : Node(n) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const NodeIt &operator=(const NodeIt&) { return *this; }
         /// %Invalid constructor \& conversion.
 
@@ -375,4 +406,9 @@
         ///
         Edge(const Edge&) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const Edge &operator=(const Edge&) { return *this; }
         /// %Invalid constructor \& conversion.
 
@@ -423,4 +459,9 @@
         ///
         EdgeIt(const EdgeIt& e) : Edge(e) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const EdgeIt &operator=(const EdgeIt&) { return *this; }
         /// %Invalid constructor \& conversion.
 
@@ -488,4 +529,9 @@
         ///
         IncEdgeIt(const IncEdgeIt& e) : Edge(e) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const IncEdgeIt &operator=(const IncEdgeIt&) { return *this; }
         /// %Invalid constructor \& conversion.
 
@@ -546,4 +592,9 @@
         ///
         Arc(const Arc&) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const Arc &operator=(const Arc&) { return *this; }
         /// %Invalid constructor \& conversion.
 
@@ -600,4 +651,9 @@
         ///
         ArcIt(const ArcIt& e) : Arc(e) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const ArcIt &operator=(const ArcIt&) { return *this; }
         /// %Invalid constructor \& conversion.
 
@@ -665,4 +721,9 @@
         ///
         OutArcIt(const OutArcIt& e) : Arc(e) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const OutArcIt &operator=(const OutArcIt&) { return *this; }
         /// %Invalid constructor \& conversion.
 
@@ -731,4 +792,9 @@
         ///
         InArcIt(const InArcIt& e) : Arc(e) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const InArcIt &operator=(const InArcIt&) { return *this; }
         /// %Invalid constructor \& conversion.
 
Index: lemon/concepts/digraph.h
===================================================================
--- lemon/concepts/digraph.h	(revision 1130)
+++ lemon/concepts/digraph.h	(revision 1210)
@@ -78,4 +78,10 @@
         Node(const Node&) { }
 
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const Node &operator=(const Node&) { return *this; }
+
         /// %Invalid constructor \& conversion.
 
@@ -127,4 +133,10 @@
         ///
         NodeIt(const NodeIt& n) : Node(n) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const NodeIt &operator=(const NodeIt&) { return *this; }
+
         /// %Invalid constructor \& conversion.
 
@@ -186,4 +198,10 @@
         ///
         Arc(const Arc&) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const Arc &operator=(const Arc&) { return *this; }
+
         /// %Invalid constructor \& conversion.
 
@@ -236,4 +254,9 @@
         ///
         OutArcIt(const OutArcIt& e) : Arc(e) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const OutArcIt &operator=(const OutArcIt&) { return *this; }
         /// %Invalid constructor \& conversion.
 
@@ -302,4 +325,10 @@
         ///
         InArcIt(const InArcIt& e) : Arc(e) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const InArcIt &operator=(const InArcIt&) { return *this; }
+
         /// %Invalid constructor \& conversion.
 
@@ -366,4 +395,10 @@
         ///
         ArcIt(const ArcIt& e) : Arc(e) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const ArcIt &operator=(const ArcIt&) { return *this; }
+
         /// %Invalid constructor \& conversion.
 
@@ -522,5 +557,10 @@
         NodeMap(const NodeMap& nm) :
           ReferenceMap<Node, T, T&, const T&>(nm) { }
+      public:
         ///Assignment operator
+        NodeMap& operator=(const NodeMap&) {
+          return *this;
+        }
+        ///Template Assignment operator
         template <typename CMap>
         NodeMap& operator=(const CMap&) {
@@ -548,4 +588,8 @@
           ReferenceMap<Arc, T, T&, const T&>(em) { }
         ///Assignment operator
+        ArcMap& operator=(const ArcMap&) {
+          return *this;
+        }
+        ///Template Assignment operator
         template <typename CMap>
         ArcMap& operator=(const CMap&) {
Index: lemon/concepts/graph.h
===================================================================
--- lemon/concepts/graph.h	(revision 1130)
+++ lemon/concepts/graph.h	(revision 1210)
@@ -109,4 +109,9 @@
         ///
         Node(const Node&) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const Node &operator=(const Node&) { return *this; }
 
         /// %Invalid constructor \& conversion.
@@ -160,4 +165,10 @@
         ///
         NodeIt(const NodeIt& n) : Node(n) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const NodeIt &operator=(const NodeIt&) { return *this; }
+
         /// %Invalid constructor \& conversion.
 
@@ -219,4 +230,10 @@
         ///
         Edge(const Edge&) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const Edge &operator=(const Edge&) { return *this; }
+
         /// %Invalid constructor \& conversion.
 
@@ -267,4 +284,10 @@
         ///
         EdgeIt(const EdgeIt& e) : Edge(e) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const EdgeIt &operator=(const EdgeIt&) { return *this; }
+
         /// %Invalid constructor \& conversion.
 
@@ -336,4 +359,10 @@
         ///
         IncEdgeIt(const IncEdgeIt& e) : Edge(e) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const IncEdgeIt &operator=(const IncEdgeIt&) { return *this; }
+
         /// %Invalid constructor \& conversion.
 
@@ -397,4 +426,10 @@
         ///
         Arc(const Arc&) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const Arc &operator=(const Arc&) { return *this; }
+
         /// %Invalid constructor \& conversion.
 
@@ -451,4 +486,10 @@
         ///
         ArcIt(const ArcIt& e) : Arc(e) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const ArcIt &operator=(const ArcIt&) { return *this; }
+
         /// %Invalid constructor \& conversion.
 
@@ -519,4 +560,10 @@
         ///
         OutArcIt(const OutArcIt& e) : Arc(e) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const OutArcIt &operator=(const OutArcIt&) { return *this; }
+
         /// %Invalid constructor \& conversion.
 
@@ -588,4 +635,10 @@
         ///
         InArcIt(const InArcIt& e) : Arc(e) { }
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const InArcIt &operator=(const InArcIt&) { return *this; }
+
         /// %Invalid constructor \& conversion.
 
@@ -652,4 +705,8 @@
           ReferenceMap<Node, T, T&, const T&>(nm) { }
         ///Assignment operator
+        NodeMap& operator=(const NodeMap&) {
+          return *this;
+        }
+        ///Template Assignment operator
         template <typename CMap>
         NodeMap& operator=(const CMap&) {
@@ -678,4 +735,8 @@
           ReferenceMap<Arc, T, T&, const T&>(em) { }
         ///Assignment operator
+        ArcMap& operator=(const ArcMap&) {
+          return *this;
+        }
+        ///Template Assignment operator
         template <typename CMap>
         ArcMap& operator=(const CMap&) {
@@ -704,4 +765,8 @@
           ReferenceMap<Edge, T, T&, const T&>(em) {}
         ///Assignment operator
+        EdgeMap& operator=(const EdgeMap&) {
+          return *this;
+        }
+        ///Template Assignment operator
         template <typename CMap>
         EdgeMap& operator=(const CMap&) {
Index: lemon/concepts/graph_components.h
===================================================================
--- lemon/concepts/graph_components.h	(revision 1197)
+++ lemon/concepts/graph_components.h	(revision 1210)
@@ -220,4 +220,10 @@
         Edge(const Edge &) : Parent() {}
 
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const Edge &operator=(const Edge&) { return *this; }
+
         /// \brief Constructor for conversion from \c INVALID.
         ///
@@ -337,4 +343,9 @@
         /// Copy constructor.
         RedNode(const RedNode &) : Parent() {}
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const RedNode &operator=(const RedNode&) { return *this; }
 
         /// \brief Constructor for conversion from \c INVALID.
@@ -366,4 +377,10 @@
         /// Copy constructor.
         BlueNode(const BlueNode &) : Parent() {}
+        /// Assignment operator
+
+        /// Assignment operator.
+        ///
+        const BlueNode &operator=(const BlueNode&) { return *this; }
+
 
         /// \brief Constructor for conversion from \c INVALID.
Index: lemon/dim2.h
===================================================================
--- lemon/dim2.h	(revision 1112)
+++ lemon/dim2.h	(revision 1210)
@@ -55,5 +55,5 @@
 
       ///Default constructor
-      Point() {}
+      Point() : x(), y() {}
 
       ///Construct an instance from coordinates
Index: lemon/list_graph.h
===================================================================
--- lemon/list_graph.h	(revision 1149)
+++ lemon/list_graph.h	(revision 1210)
@@ -1658,4 +1658,5 @@
       RedNode(const RedNode& node) : Node(node) {}
       RedNode(Invalid) : Node(INVALID){}
+      const RedNode& operator=(const RedNode& node) { Node::operator=(node); return *this;}
     };
 
@@ -1670,4 +1671,5 @@
       BlueNode(const BlueNode& node) : Node(node) {}
       BlueNode(Invalid) : Node(INVALID){}
+      const BlueNode& operator=(const BlueNode& node) { Node::operator=(node); return *this;}
     };
 
Index: lemon/maps.h
===================================================================
--- lemon/maps.h	(revision 1130)
+++ lemon/maps.h	(revision 1210)
@@ -295,7 +295,10 @@
   private:
 
-    RangeMap& operator=(const RangeMap&);
-
-  public:
+    // RangeMap& operator=(const RangeMap&);
+
+  public:
+
+    // ///\e
+    // RangeMap(const RangeMap&);
 
     ///\e
Index: lemon/smart_graph.h
===================================================================
--- lemon/smart_graph.h	(revision 1130)
+++ lemon/smart_graph.h	(revision 1210)
@@ -864,5 +864,6 @@
       RedNode() {}
       RedNode(const RedNode& node) : Node(node) {}
-      RedNode(Invalid) : Node(INVALID){}
+      RedNode(Invalid) : Node(INVALID) {}
+      const RedNode& operator=(const RedNode& node) { Node::operator=(node); return *this;}
     };
 
@@ -877,4 +878,5 @@
       BlueNode(const BlueNode& node) : Node(node) {}
       BlueNode(Invalid) : Node(INVALID){}
+      const BlueNode& operator=(const BlueNode& node) { Node::operator=(node); return *this;}
     };
 
Index: test/maps_test.cc
===================================================================
--- test/maps_test.cc	(revision 1131)
+++ test/maps_test.cc	(revision 1210)
@@ -62,4 +62,7 @@
   typedef B result_type;
 
+  F() {};
+  F(const F&) {};
+
   B operator()(const A&) const { return B(); }
 private:
