Index: lemon/bits/edge_set_extender.h
===================================================================
--- lemon/bits/edge_set_extender.h	(revision 1337)
+++ lemon/bits/edge_set_extender.h	(revision 1270)
@@ -114,7 +114,4 @@
     };
 
-    LemonRangeWrapper1<NodeIt, Digraph> nodes() const {
-      return LemonRangeWrapper1<NodeIt, Digraph>(*this);
-    }
 
     class ArcIt : public Arc {
@@ -140,7 +137,4 @@
     };
 
-    LemonRangeWrapper1<ArcIt, Digraph> arcs() const {
-      return LemonRangeWrapper1<ArcIt, Digraph>(*this);
-    }
 
     class OutArcIt : public Arc {
@@ -167,7 +161,4 @@
     };
 
-    LemonRangeWrapper2<OutArcIt, Digraph, Node> outArcs(const Node& u) const {
-      return LemonRangeWrapper2<OutArcIt, Digraph, Node>(*this, u);
-    }
 
     class InArcIt : public Arc {
@@ -193,8 +184,4 @@
 
     };
-
-    LemonRangeWrapper2<InArcIt, Digraph, Node> inArcs(const Node& u) const {
-      return LemonRangeWrapper2<InArcIt, Digraph, Node>(*this, u);
-    }
 
     // \brief Base node of the iterator
@@ -386,7 +373,4 @@
     };
 
-    LemonRangeWrapper1<NodeIt, Graph> nodes() const {
-      return LemonRangeWrapper1<NodeIt, Graph>(*this);
-    }
 
     class ArcIt : public Arc {
@@ -412,7 +396,4 @@
     };
 
-    LemonRangeWrapper1<ArcIt, Graph> arcs() const {
-      return LemonRangeWrapper1<ArcIt, Graph>(*this);
-    }
 
     class OutArcIt : public Arc {
@@ -439,7 +420,4 @@
     };
 
-    LemonRangeWrapper2<OutArcIt, Graph, Node> outArcs(const Node& u) const {
-      return LemonRangeWrapper2<OutArcIt, Graph, Node>(*this, u);
-    }
 
     class InArcIt : public Arc {
@@ -466,7 +444,4 @@
     };
 
-    LemonRangeWrapper2<InArcIt, Graph, Node> inArcs(const Node& u) const {
-      return LemonRangeWrapper2<InArcIt, Graph, Node>(*this, u);
-    }
 
     class EdgeIt : public Parent::Edge {
@@ -491,8 +466,4 @@
 
     };
-
-    LemonRangeWrapper1<EdgeIt, Graph> edges() const {
-      return LemonRangeWrapper1<EdgeIt, Graph>(*this);
-    }
 
     class IncEdgeIt : public Parent::Edge {
@@ -520,8 +491,4 @@
       }
     };
-
-    LemonRangeWrapper2<IncEdgeIt, Graph, Node> incEdges(const Node& u) const {
-      return LemonRangeWrapper2<IncEdgeIt, Graph, Node>(*this, u);
-    }
 
     // \brief Base node of the iterator
Index: lemon/bits/graph_adaptor_extender.h
===================================================================
--- lemon/bits/graph_adaptor_extender.h	(revision 1337)
+++ lemon/bits/graph_adaptor_extender.h	(revision 1270)
@@ -86,7 +86,4 @@
     };
 
-    LemonRangeWrapper1<NodeIt, Adaptor> nodes() const {
-      return LemonRangeWrapper1<NodeIt, Adaptor>(*this);
-    }
 
     class ArcIt : public Arc {
@@ -111,8 +108,4 @@
 
     };
-
-    LemonRangeWrapper1<ArcIt, Adaptor> arcs() const {
-      return LemonRangeWrapper1<ArcIt, Adaptor>(*this);
-    }
 
 
@@ -140,8 +133,4 @@
     };
 
-    LemonRangeWrapper2<OutArcIt, Adaptor, Node> outArcs(const Node& u) const {
-      return LemonRangeWrapper2<OutArcIt, Adaptor, Node>(*this, u);
-    }
-
 
     class InArcIt : public Arc {
@@ -167,8 +156,4 @@
 
     };
-
-    LemonRangeWrapper2<InArcIt, Adaptor, Node> inArcs(const Node& u) const {
-      return LemonRangeWrapper2<InArcIt, Adaptor, Node>(*this, u);
-    }
 
     Node baseNode(const OutArcIt &e) const {
@@ -270,8 +255,4 @@
     };
 
-    LemonRangeWrapper1<NodeIt, Adaptor> nodes() const {
-      return LemonRangeWrapper1<NodeIt, Adaptor>(*this);
-    }
-
 
     class ArcIt : public Arc {
@@ -296,8 +277,4 @@
 
     };
-
-    LemonRangeWrapper1<ArcIt, Adaptor> arcs() const {
-      return LemonRangeWrapper1<ArcIt, Adaptor>(*this);
-    }
 
 
@@ -325,8 +302,4 @@
     };
 
-    LemonRangeWrapper2<OutArcIt, Adaptor, Node> outArcs(const Node& u) const {
-      return LemonRangeWrapper2<OutArcIt, Adaptor, Node>(*this, u);
-    }
-
 
     class InArcIt : public Arc {
@@ -353,8 +326,4 @@
     };
 
-    LemonRangeWrapper2<InArcIt, Adaptor, Node> inArcs(const Node& u) const {
-      return LemonRangeWrapper2<InArcIt, Adaptor, Node>(*this, u);
-    }
-
     class EdgeIt : public Parent::Edge {
       const Adaptor* _adaptor;
@@ -378,9 +347,4 @@
 
     };
-
-    LemonRangeWrapper1<EdgeIt, Adaptor> edges() const {
-      return LemonRangeWrapper1<EdgeIt, Adaptor>(*this);
-    }
-
 
     class IncEdgeIt : public Edge {
@@ -409,9 +373,4 @@
     };
 
-    LemonRangeWrapper2<IncEdgeIt, Adaptor, Node> incEdges(const Node& u) const {
-      return LemonRangeWrapper2<IncEdgeIt, Adaptor, Node>(*this, u);
-    }
-
-
     Node baseNode(const OutArcIt &a) const {
       return Parent::source(a);
Index: lemon/bits/graph_extender.h
===================================================================
--- lemon/bits/graph_extender.h	(revision 1336)
+++ lemon/bits/graph_extender.h	(revision 1270)
@@ -28,6 +28,4 @@
 #include <lemon/concepts/maps.h>
 
-#include <lemon/bits/stl_iterators.h>
-
 //\ingroup graphbits
 //\file
@@ -119,8 +117,4 @@
     };
 
-    LemonRangeWrapper1<NodeIt, Digraph> nodes() const {
-      return LemonRangeWrapper1<NodeIt, Digraph>(*this);
-    }
-
 
     class ArcIt : public Arc {
@@ -145,8 +139,4 @@
 
     };
-
-    LemonRangeWrapper1<ArcIt, Digraph> arcs() const {
-      return LemonRangeWrapper1<ArcIt, Digraph>(*this);
-    }
 
 
@@ -174,8 +164,4 @@
     };
 
-    LemonRangeWrapper2<OutArcIt, Digraph, Node> outArcs(const Node& u) const {
-      return LemonRangeWrapper2<OutArcIt, Digraph, Node>(*this, u);
-    }
-
 
     class InArcIt : public Arc {
@@ -201,8 +187,4 @@
 
     };
-
-    LemonRangeWrapper2<InArcIt, Digraph, Node> inArcs(const Node& u) const {
-      return LemonRangeWrapper2<InArcIt, Digraph, Node>(*this, u);
-    }
 
     // \brief Base node of the iterator
@@ -455,8 +437,4 @@
     };
 
-    LemonRangeWrapper1<NodeIt, Graph> nodes() const {
-      return LemonRangeWrapper1<NodeIt, Graph>(*this);
-    }
-
 
     class ArcIt : public Arc {
@@ -481,8 +459,4 @@
 
     };
-
-    LemonRangeWrapper1<ArcIt, Graph> arcs() const {
-      return LemonRangeWrapper1<ArcIt, Graph>(*this);
-    }
 
 
@@ -510,8 +484,4 @@
     };
 
-    LemonRangeWrapper2<OutArcIt, Graph, Node> outArcs(const Node& u) const {
-      return LemonRangeWrapper2<OutArcIt, Graph, Node>(*this, u);
-    }
-
 
     class InArcIt : public Arc {
@@ -538,8 +508,4 @@
     };
 
-    LemonRangeWrapper2<InArcIt, Graph, Node> inArcs(const Node& u) const {
-      return LemonRangeWrapper2<InArcIt, Graph, Node>(*this, u);
-    }
-
 
     class EdgeIt : public Parent::Edge {
@@ -564,9 +530,4 @@
 
     };
-
-    LemonRangeWrapper1<EdgeIt, Graph> edges() const {
-      return LemonRangeWrapper1<EdgeIt, Graph>(*this);
-    }
-
 
     class IncEdgeIt : public Parent::Edge {
@@ -594,9 +555,4 @@
       }
     };
-
-    LemonRangeWrapper2<IncEdgeIt, Graph, Node> incEdges(const Node& u) const {
-      return LemonRangeWrapper2<IncEdgeIt, Graph, Node>(*this, u);
-    }
-
 
     // \brief Base node of the iterator
@@ -948,9 +904,4 @@
     };
 
-    LemonRangeWrapper1<NodeIt, BpGraph> nodes() const {
-      return LemonRangeWrapper1<NodeIt, BpGraph>(*this);
-    }
-
-
     class RedNodeIt : public RedNode {
       const BpGraph* _graph;
@@ -975,9 +926,4 @@
     };
 
-    LemonRangeWrapper1<RedNodeIt, BpGraph> redNodes() const {
-      return LemonRangeWrapper1<RedNodeIt, BpGraph>(*this);
-    }
-
-
     class BlueNodeIt : public BlueNode {
       const BpGraph* _graph;
@@ -1002,9 +948,4 @@
     };
 
-    LemonRangeWrapper1<BlueNodeIt, BpGraph> blueNodes() const {
-      return LemonRangeWrapper1<BlueNodeIt, BpGraph>(*this);
-    }
-
-
 
     class ArcIt : public Arc {
@@ -1029,8 +970,4 @@
 
     };
-
-    LemonRangeWrapper1<ArcIt, BpGraph> arcs() const {
-      return LemonRangeWrapper1<ArcIt, BpGraph>(*this);
-    }
 
 
@@ -1058,8 +995,4 @@
     };
 
-    LemonRangeWrapper2<OutArcIt, BpGraph, Node> outArcs(const Node& u) const {
-      return LemonRangeWrapper2<OutArcIt, BpGraph, Node>(*this, u);
-    }
-
 
     class InArcIt : public Arc {
@@ -1086,8 +1019,4 @@
     };
 
-    LemonRangeWrapper2<InArcIt, BpGraph, Node> inArcs(const Node& u) const {
-      return LemonRangeWrapper2<InArcIt, BpGraph, Node>(*this, u);
-    }
-
 
     class EdgeIt : public Parent::Edge {
@@ -1112,9 +1041,4 @@
 
     };
-
-    LemonRangeWrapper1<EdgeIt, BpGraph> edges() const {
-      return LemonRangeWrapper1<EdgeIt, BpGraph>(*this);
-    }
-
 
     class IncEdgeIt : public Parent::Edge {
@@ -1142,9 +1066,4 @@
       }
     };
-
-    LemonRangeWrapper2<IncEdgeIt, BpGraph, Node> incEdges(const Node& u) const {
-      return LemonRangeWrapper2<IncEdgeIt, BpGraph, Node>(*this, u);
-    }
-
 
     // \brief Base node of the iterator
Index: lemon/bits/path_dump.h
===================================================================
--- lemon/bits/path_dump.h	(revision 1338)
+++ lemon/bits/path_dump.h	(revision 1270)
@@ -62,5 +62,5 @@
       }
 
-      operator typename Digraph::Arc() const {
+      operator const typename Digraph::Arc() const {
         return path->predMap[current];
       }
Index: lemon/bits/stl_iterators.h
===================================================================
--- lemon/bits/stl_iterators.h	(revision 1339)
+++ 	(revision )
@@ -1,99 +1,0 @@
-/* -*- mode: C++; indent-tabs-mode: nil; -*-
- */
-
-#ifndef STL_ITERATORS_H_
-#define STL_ITERATORS_H_
-
-#include <lemon/core.h>
-
-namespace lemon {
-
-  /// \brief Template to make STL iterators from Lemon iterators.
-  ///
-  /// This template makes an STL iterator from a Lemon iterator
-  /// by adding the missing features.
-  /// It inherits from \c std::iterator to make \c iterator_concept work
-  /// (so that STL algorithms work).
-  /// \c T should be the lemon iterator to be decorated.
-  template<class T>
-  struct LemonItWrapper
-      : public T, public std::iterator<std::input_iterator_tag, T> {
-
-    LemonItWrapper(const T &x) : T(x) {}
-
-    //Lemon iterators don't have operator*, (because they rather
-    //inherit from their "value_type"),
-    //so we add one that just returns the object.
-    const T& operator*() const {
-      return static_cast<const T&>(*this);
-    }
-
-    //I can't think of any use case for this with Lemon iterators,
-    //but maybe it should be included for completeness.
-    const T* operator->() {
-      return static_cast<const T*>(this);
-    }
-
-    //Lemon iterators don't have postincrement.
-    void operator++(int) {
-      T::operator++();
-    }
-
-    using T::operator++;
-
-  };
-
-
-  /// \brief A generic wrapper for Lemon iterators for range-based for loops.
-  ///
-  /// This template can be used to create a class
-  /// that has begin() and end() from a Lemon iterator
-  /// (with a 1-parameter constructor)
-  /// to make range-based for loops and STL algorithms work.
-  ///
-  /// \c LIT is the Lemon iterator that will be wrapped
-  /// \c P is the type of the parameter of the constructor of \c LIT.
-  template<class LIT, class P>
-  class LemonRangeWrapper1 {
-    typedef LemonItWrapper<LIT> It;
-    It _begin;
-    
-  public:
-    LemonRangeWrapper1(const P &p) : _begin(LIT(p)) {}
-    It begin() const {
-      return _begin;
-    }
-    It end() const {
-      return It(lemon::INVALID);
-    }
-  };
-
-
-  /// \brief A generic wrapper for Lemon iterators for range-based for loops.
-  ///
-  /// This template can be used to create a class
-  /// that has begin() and end() from a Lemon iterator
-  /// (with a 2-parameter constructor)
-  /// to make range-based for loops and STL algorithms work.
-  ///
-  /// \c LIT is the Lemon iterator that will be wrapped
-  /// \c P1 and \c P2 are the types of the parameters
-  /// of the constructor of \c LIT.
-  template<class LIT, class P1, class P2>
-  class LemonRangeWrapper2 {
-    typedef LemonItWrapper<LIT> It; 
-    It _begin;
- public:
-    LemonRangeWrapper2(const P1 &p1, const P2 &p2) : _begin(LIT(p1, p2)) {}
-    It begin() const {
-      return _begin;
-    }
-    It end() const {
-      return It(lemon::INVALID);
-    }
-  };
-
-
-}
-
-#endif /* STL_ITERATORS_H_ */
Index: lemon/bits/windows.cc
===================================================================
--- lemon/bits/windows.cc	(revision 1270)
+++ lemon/bits/windows.cc	(revision 1340)
@@ -22,5 +22,5 @@
 #include<lemon/bits/windows.h>
 
-#ifdef WIN32
+#ifdef LEMON_WIN32
 #ifndef WIN32_LEAN_AND_MEAN
 #define WIN32_LEAN_AND_MEAN
@@ -41,5 +41,5 @@
 #include <unistd.h>
 #include <ctime>
-#ifndef WIN32
+#ifndef LEMON_WIN32
 #include <sys/times.h>
 #endif
@@ -56,5 +56,5 @@
                          double &cutime, double &cstime)
     {
-#ifdef WIN32
+#ifdef LEMON_WIN32
       static const double ch = 4294967296.0e-7;
       static const double cl = 1.0e-7;
@@ -95,9 +95,9 @@
     {
       std::ostringstream os;
-#ifdef WIN32
+#ifdef LEMON_WIN32
       SYSTEMTIME time;
       GetSystemTime(&time);
       char buf1[11], buf2[9], buf3[5];
-          if (GetDateFormat(MY_LOCALE, 0, &time,
+      if (GetDateFormat(MY_LOCALE, 0, &time,
                         ("ddd MMM dd"), buf1, 11) &&
           GetTimeFormat(MY_LOCALE, 0, &time,
@@ -121,5 +121,5 @@
     int getWinRndSeed()
     {
-#ifdef WIN32
+#ifdef LEMON_WIN32
       FILETIME time;
       GetSystemTimeAsFileTime(&time);
@@ -133,5 +133,5 @@
 
     WinLock::WinLock() {
-#ifdef WIN32
+#ifdef LEMON_WIN32
       CRITICAL_SECTION *lock = new CRITICAL_SECTION;
       InitializeCriticalSection(lock);
@@ -143,5 +143,5 @@
 
     WinLock::~WinLock() {
-#ifdef WIN32
+#ifdef LEMON_WIN32
       CRITICAL_SECTION *lock = static_cast<CRITICAL_SECTION*>(_repr);
       DeleteCriticalSection(lock);
@@ -151,5 +151,5 @@
 
     void WinLock::lock() {
-#ifdef WIN32
+#ifdef LEMON_WIN32
       CRITICAL_SECTION *lock = static_cast<CRITICAL_SECTION*>(_repr);
       EnterCriticalSection(lock);
@@ -158,5 +158,5 @@
 
     void WinLock::unlock() {
-#ifdef WIN32
+#ifdef LEMON_WIN32
       CRITICAL_SECTION *lock = static_cast<CRITICAL_SECTION*>(_repr);
       LeaveCriticalSection(lock);
Index: lemon/bits/windows.h
===================================================================
--- lemon/bits/windows.h	(revision 1270)
+++ lemon/bits/windows.h	(revision 1340)
@@ -20,4 +20,5 @@
 #define LEMON_BITS_WINDOWS_H
 
+#include <lemon/config.h>
 #include <string>
 
@@ -35,5 +36,5 @@
       ~WinLock();
       void lock();
-      void unlock();
+      void unlock();\
     private:
       void *_repr;
