Index: lemon/dfs.h
===================================================================
--- lemon/dfs.h	(revision 1536)
+++ lemon/dfs.h	(revision 1540)
@@ -645,5 +645,5 @@
     ///\return The length of the %DFS s---t path if there exists one,
     ///0 otherwise.
-    ///\note Apart from the return value, d.run(s) is
+    ///\note Apart from the return value, d.run(s,t) is
     ///just a shortcut of the following code.
     ///\code
Index: lemon/graph_reader.h
===================================================================
--- lemon/graph_reader.h	(revision 1534)
+++ lemon/graph_reader.h	(revision 1540)
@@ -37,9 +37,10 @@
   /// Before you read this documentation it might be useful to read the general
   /// description of  \ref graph-io-page "Graph Input-Output".
+  ///
   /// If you don't need very sophisticated
   /// behaviour then you can use the versions of the public function
   /// \ref readGraph() to read a graph (or a max flow instance etc).
   ///
-  /// The given file format may contain several maps and labeled nodes or 
+  /// The file to be read may contain several maps and labeled nodes or 
   /// edges.
   ///
@@ -47,7 +48,8 @@
   /// that you need. The interface of the \c GraphReader is very similar to
   /// the GraphWriter but the reading method does not depend on the order the
-  /// given commands.
-  ///
-  /// The reader object suppose that each not readed value does not contain 
+  /// given commands (i.e. you don't have to insist on the order in which the
+  /// maps are given in the file).
+  ///
+  /// The reader object assumes that not readed values do not contain 
   /// whitespaces, therefore it has some extra possibilities to control how
   /// it should skip the values when the string representation contains spaces.
@@ -91,9 +93,9 @@
   ///
   /// With the \c readAttribute() functions you can read an attribute
-  /// in a variable. You can specify the reader for the attribute as
+  /// into a variable. You can specify the reader for the attribute as
   /// the nodemaps.
   ///
   /// After you give all read commands you must call the \c run() member
-  /// function, which execute all the commands.
+  /// function, which executes all the commands.
   ///
   /// \code
@@ -120,5 +122,5 @@
     ///
     /// Construct a new GraphReader. It reads into the given graph
-    /// and it use the given reader as the default skipper.
+    /// and it uses the given reader as the default skipper.
     GraphReader(std::istream& _is, 
 		typename SmartParameter<Graph>::Type _graph, 
@@ -135,5 +137,5 @@
     ///
     /// Construct a new GraphReader. It reads into the given graph
-    /// and it use the given reader as the default skipper.
+    /// and it uses the given reader as the default skipper.
     GraphReader(const std::string& _filename, 
 		typename SmartParameter<Graph>::Type _graph, 
@@ -151,5 +153,5 @@
     ///
     /// Construct a new GraphReader. It reads into the given graph
-    /// and it use the given reader as the default skipper.
+    /// and it uses the given reader as the default skipper.
     GraphReader(LemonReader& _reader, 
 		typename SmartParameter<Graph>::Type _graph, 
@@ -171,7 +173,7 @@
     }
 
-    /// \brief Add a new node map reader command for the reader.
-    ///
-    /// Add a new node map reader command for the reader.
+    /// \brief Give a new node map reading command to the reader.
+    ///
+    /// Give a new node map reading command to the reader.
     template <typename Map>
     GraphReader& readNodeMap(std::string name, Map& map) {
@@ -186,7 +188,7 @@
     }
 
-    /// \brief Add a new node map reader command for the reader.
-    ///
-    /// Add a new node map reader command for the reader.
+    /// \brief Give a new node map reading command to the reader.
+    ///
+    /// Give a new node map reading command to the reader.
     template <typename Reader, typename Map>
     GraphReader& readNodeMap(std::string name, Map& map, 
@@ -203,7 +205,7 @@
     }
 
-    /// \brief Add a new node map skipper command for the reader.
-    ///
-    /// Add a new node map skipper command for the reader.
+    /// \brief Give a new node map skipping command to the reader.
+    ///
+    /// Give a new node map skipping command to the reader.
     template <typename Reader>
     GraphReader& skipNodeMap(std::string name, 
@@ -213,7 +215,7 @@
     }
 
-    /// \brief Add a new edge map reader command for the reader.
-    ///
-    /// Add a new edge map reader command for the reader.
+    /// \brief Give a new edge map reading command to the reader.
+    ///
+    /// Give a new edge map reading command to the reader.
     template <typename Map>
     GraphReader& readEdgeMap(std::string name, Map& map) { 
@@ -229,7 +231,7 @@
 
 
-    /// \brief Add a new edge map reader command for the reader.
-    ///
-    /// Add a new edge map reader command for the reader.
+    /// \brief Give a new edge map reading command to the reader.
+    ///
+    /// Give a new edge map reading command to the reader.
     template <typename Reader, typename Map>
     GraphReader& readEdgeMap(std::string name, Map& map,
@@ -246,7 +248,7 @@
     }
 
-    /// \brief Add a new edge map skipper command for the reader.
-    ///
-    /// Add a new edge map skipper command for the reader.
+    /// \brief Give a new edge map skipping command to the reader.
+    ///
+    /// Give a new edge map skipping command to the reader.
     template <typename Reader>
     GraphReader& skipEdgeMap(std::string name, 
@@ -256,7 +258,7 @@
     }
 
-    /// \brief Add a new labeled node reader for the reader.
-    ///
-    /// Add a new labeled node reader for the reader.
+    /// \brief Give a new labeled node reading command to the reader.
+    ///
+    /// Give a new labeled node reading command to the reader.
     GraphReader& readNode(std::string name, Node& node) {
       node_reader.readNode(name, node);
@@ -264,7 +266,7 @@
     }
 
-    /// \brief Add a new labeled edge reader for the reader.
-    ///
-    /// Add a new labeled edge reader for the reader.
+    /// \brief Give a new labeled edge reading command to the reader.
+    ///
+    /// Give a new labeled edge reading command to the reader.
     GraphReader& readEdge(std::string name, Edge& edge) {
       edge_reader.readEdge(name, edge);
@@ -272,7 +274,7 @@
     }
 
-    /// \brief Add a new attribute reader command.
-    ///
-    ///  Add a new attribute reader command.
+    /// \brief Give a new attribute reading command.
+    ///
+    ///  Give a new attribute reading command.
     template <typename Value>
     GraphReader& readAttribute(std::string name, Value& value) {
@@ -281,7 +283,7 @@
     }
     
-    /// \brief Add a new attribute reader command.
-    ///
-    ///  Add a new attribute reader command.
+    /// \brief Give a new attribute reading command.
+    ///
+    ///  Give a new attribute reading command.
     template <typename Reader, typename Value>
     GraphReader& readAttribute(std::string name, Value& value, 
@@ -293,15 +295,15 @@
     /// \brief Conversion operator to LemonReader.
     ///
-    /// Conversion operator to LemonReader. It make possible
-    /// to access the encapsulated \e LemonReader, this way
-    /// you can attach to this reader new instances of 
-    /// \e LemonReader::SectionReader.
+    /// Conversion operator to LemonReader. It makes possible to access the
+    /// encapsulated \e LemonReader, this way you can attach to this reader
+    /// new instances of \e LemonReader::SectionReader. For more details see
+    /// the \ref rwbackground "Background of Reading and Writing".
     operator LemonReader&() {
       return *reader;
     }
 
-    /// \brief Executes the reader commands.
-    ///
-    /// Executes the reader commands.
+    /// \brief Executes the reading commands.
+    ///
+    /// Executes the reading commands.
     void run() {
       reader->run();
@@ -433,11 +435,19 @@
   /// \brief The undir graph reader class.
   ///
+  /// The \c UndirGraphReader class provides the graph input. 
+  /// Before you read this documentation it might be useful to read the general
+  /// description of  \ref graph-io-page "Graph Input-Output".
+  ///
+  /// If you don't need very sophisticated
+  /// behaviour then you can use the versions of the public function
+  /// \ref readGraph() to read a graph (or a max flow instance etc).
+  ///
   /// The given file format may contain several maps and labeled nodes or 
   /// edges.
   ///
   /// If you read a graph you need not read all the maps and items just those
-  /// that you need. The interface of the \c GraphReader is very similar to
-  /// the GraphWriter but the reading method does not depend on the order the
-  /// given commands.
+  /// that you need. The interface of the \c UndirGraphReader is very similar
+  /// to the UndirGraphWriter but the reading method does not depend on the
+  /// order of the given commands.
   ///
   /// The reader object suppose that each not readed value does not contain 
@@ -570,7 +580,7 @@
     }
 
-    /// \brief Add a new node map reader command for the reader.
-    ///
-    /// Add a new node map reader command for the reader.
+    /// \brief Give a new node map reading command to the reader.
+    ///
+    /// Give a new node map reading command to the reader.
     template <typename Map>
     UndirGraphReader& readNodeMap(std::string name, Map& map) {
@@ -585,7 +595,7 @@
     }
 
-    /// \brief Add a new node map reader command for the reader.
-    ///
-    /// Add a new node map reader command for the reader.
+    /// \brief Give a new node map reading command to the reader.
+    ///
+    /// Give a new node map reading command to the reader.
     template <typename Reader, typename Map>
     UndirGraphReader& readNodeMap(std::string name, Map& map, 
@@ -602,7 +612,7 @@
     }
 
-    /// \brief Add a new node map skipper command for the reader.
-    ///
-    /// Add a new node map skipper command for the reader.
+    /// \brief Give a new node map skipping command to the reader.
+    ///
+    /// Give a new node map skipping command to the reader.
     template <typename Reader>
     UndirGraphReader& skipNodeMap(std::string name, 
@@ -612,7 +622,7 @@
     }
 
-    /// \brief Add a new undirected edge map reader command for the reader.
-    ///
-    /// Add a new undirected edge map reader command for the reader.
+    /// \brief Give a new undirected edge map reading command to the reader.
+    ///
+    /// Give a new undirected edge map reading command to the reader.
     template <typename Map>
     UndirGraphReader& readUndirEdgeMap(std::string name, Map& map) { 
@@ -628,7 +638,7 @@
 
 
-    /// \brief Add a new undirected edge map reader command for the reader.
-    ///
-    /// Add a new undirected edge map reader command for the reader.
+    /// \brief Give a new undirected edge map reading command to the reader.
+    ///
+    /// Give a new undirected edge map reading command to the reader.
     template <typename Reader, typename Map>
     UndirGraphReader& readUndirEdgeMap(std::string name, Map& map,
@@ -645,7 +655,7 @@
     }
 
-    /// \brief Add a new undirected edge map skipper command for the reader.
-    ///
-    /// Add a new undirected edge map skipper command for the reader.
+    /// \brief Give a new undirected edge map skipping command to the reader.
+    ///
+    /// Give a new undirected edge map skipping command to the reader.
     template <typename Reader>
     UndirGraphReader& skipUndirEdgeMap(std::string name,
@@ -656,7 +666,7 @@
 
 
-    /// \brief Add a new edge map reader command for the reader.
-    ///
-    /// Add a new edge map reader command for the reader.
+    /// \brief Give a new edge map reading command to the reader.
+    ///
+    /// Give a new edge map reading command to the reader.
     template <typename Map>
     UndirGraphReader& readEdgeMap(std::string name, Map& map) { 
@@ -672,7 +682,7 @@
 
 
-    /// \brief Add a new edge map reader command for the reader.
-    ///
-    /// Add a new edge map reader command for the reader.
+    /// \brief Give a new edge map reading command to the reader.
+    ///
+    /// Give a new edge map reading command to the reader.
     template <typename Reader, typename Map>
     UndirGraphReader& readEdgeMap(std::string name, Map& map,
@@ -689,7 +699,7 @@
     }
 
-    /// \brief Add a new edge map skipper command for the reader.
-    ///
-    /// Add a new edge map skipper command for the reader.
+    /// \brief Give a new edge map skipping command to the reader.
+    ///
+    /// Give a new edge map skipping command to the reader.
     template <typename Reader>
     UndirGraphReader& skipEdgeMap(std::string name,
@@ -699,7 +709,7 @@
     }
 
-    /// \brief Add a new labeled node reader for the reader.
-    ///
-    /// Add a new labeled node reader for the reader.
+    /// \brief Give a new labeled node reading command to the reader.
+    ///
+    /// Give a new labeled node reading command to the reader.
     UndirGraphReader& readNode(std::string name, Node& node) {
       node_reader.readNode(name, node);
@@ -707,21 +717,22 @@
     }
 
-    /// \brief Add a new labeled edge reader for the reader.
-    ///
-    /// Add a new labeled edge reader for the reader.
+    /// \brief Give a new labeled edge reading command to the reader.
+    ///
+    /// Give a new labeled edge reading command to the reader.
     UndirGraphReader& readEdge(std::string name, Edge& edge) {
       undir_edge_reader.readEdge(name, edge);
     }
 
-    /// \brief Add a new labeled undirected edge reader for the reader.
-    ///
-    /// Add a new labeled undirected edge reader for the reader.
+    /// \brief Give a new labeled undirected edge reading command to the
+    /// reader.
+    ///
+    /// Give a new labeled undirected edge reading command to the reader.
     UndirGraphReader& readUndirEdge(std::string name, UndirEdge& edge) {
       undir_edge_reader.readUndirEdge(name, edge);
     }
 
-    /// \brief Add a new attribute reader command.
-    ///
-    ///  Add a new attribute reader command.
+    /// \brief Give a new attribute reading command.
+    ///
+    ///  Give a new attribute reading command.
     template <typename Value>
     UndirGraphReader& readAttribute(std::string name, Value& value) {
@@ -730,7 +741,7 @@
     }
     
-    /// \brief Add a new attribute reader command.
-    ///
-    ///  Add a new attribute reader command.
+    /// \brief Give a new attribute reading command.
+    ///
+    ///  Give a new attribute reading command.
     template <typename Reader, typename Value>
     UndirGraphReader& readAttribute(std::string name, Value& value, 
@@ -750,7 +761,7 @@
     }
 
-    /// \brief Executes the reader commands.
-    ///
-    /// Executes the reader commands.
+    /// \brief Executes the reading commands.
+    ///
+    /// Executes the reading commands.
     void run() {
       reader->run();
Index: lemon/graph_utils.h
===================================================================
--- lemon/graph_utils.h	(revision 1538)
+++ lemon/graph_utils.h	(revision 1540)
@@ -31,6 +31,4 @@
 ///\brief Graph utilities.
 ///
-///\todo Please
-///revise the documentation.
 ///
 
@@ -43,5 +41,5 @@
   /// \brief Function to count the items in the graph.
   ///
-  /// This function counts the items in the graph.
+  /// This function counts the items (nodes, edges etc) in the graph.
   /// The complexity of the function is O(n) because
   /// it iterates on all of the items.
@@ -126,5 +124,5 @@
   /// This function counts the undirected edges in the graph.
   /// The complexity of the function is O(e) but for some
-  /// graph structure it is specialized to run in O(1).
+  /// graph structures it is specialized to run in O(1).
 
   template <typename Graph>
@@ -194,9 +192,9 @@
   }
 
-  /// \brief Copy the source map to the target map.
-  ///
-  /// Copy the \c source map to the \c target map. It uses the given iterator
-  /// to iterate on the data structure and it use the \c ref mapping to
-  /// convert the source's keys to the target's keys.
+  /// \brief Copy a map.
+  ///
+  /// Thsi function copies the \c source map to the \c target map. It uses the
+  /// given iterator to iterate on the data structure and it uses the \c ref
+  /// mapping to convert the source's keys to the target's keys.
   template <typename Target, typename Source, 
 	    typename ItemIt, typename Ref>	    
@@ -221,8 +219,8 @@
 
 
-  /// \brief Class to copy a graph to an other graph.
-  ///
-  /// Class to copy a graph to an other graph. It can be used easier
-  /// with the \c copyGraph() function.
+  /// \brief Class to copy a graph.
+  ///
+  /// Class to copy a graph to an other graph (duplicate a graph). The
+  /// simplest way of using it is through the \c copyGraph() function.
   template <typename Target, typename Source>
   class GraphCopy {
@@ -355,5 +353,5 @@
   /// After the copy the \c nr map will contain the mapping from the
   /// source graph's nodes to the target graph's nodes and the \c ecr will
-  /// contain the mapping from the target graph's edge to the source's
+  /// contain the mapping from the target graph's edges to the source's
   /// edges.
   template <typename Target, typename Source>
@@ -459,6 +457,11 @@
   /// Provides an immutable and unique id for each item in the graph.
 
-  /// The IdMap class provides a unique and immutable mapping for each item
-  /// in the graph.
+  /// The IdMap class provides a unique and immutable id for each item of the
+  /// same type (e.g. node) in the graph. This id is <ul><li>\b unique:
+  /// different items (nodes) get different ids <li>\b immutable: the id of an
+  /// item (node) does not change (even if you delete other nodes).  </ul>
+  /// Through this map you get access (i.e. can read) the inner id values of
+  /// the items stored in the graph. This map can be inverted with its member
+  /// class \c InverseMap.
   ///
   template <typename _Graph, typename _Item>
@@ -488,7 +491,7 @@
   public:
 
-    /// \brief The class represents the inverse of the map.
-    ///
-    /// The class represents the inverse of the map.
+    /// \brief The class represents the inverse of its owner (IdMap).
+    ///
+    /// The class represents the inverse of its owner (IdMap).
     /// \see inverse()
     class InverseMap {
@@ -518,5 +521,5 @@
     /// \brief Gives back the inverse of the map.
     ///
-    /// Gives back the inverse of the map.
+    /// Gives back the inverse of the IdMap.
     InverseMap inverse() const { return InverseMap(*graph);} 
 
@@ -526,5 +529,5 @@
   /// \brief General invertable graph-map type.
 
-  /// This type provides simple invertable map functions. 
+  /// This type provides simple invertable graph-maps. 
   /// The InvertableMap wraps an arbitrary ReadWriteMap 
   /// and if a key is set to a new value then store it
@@ -659,7 +662,12 @@
   /// item in the graph.
   ///
-  /// The DescriptorMap class provides a mutable, continuous and immutable
-  /// mapping for each item in the graph. The value for an item may mutated
-  /// on each operation when the an item erased or added to graph.
+  /// The DescriptorMap class provides a unique and continuous (but mutable)
+  /// descriptor (id) for each item of the same type (e.g. node) in the
+  /// graph. This id is <ul><li>\b unique: different items (nodes) get
+  /// different ids <li>\b continuous: the range of the ids is the set of
+  /// integers between 0 and \c n-1, where \c n is the number of the items of
+  /// this type (e.g. nodes) (so the id of a node can change if you delete an
+  /// other node, i.e. this id is mutable).  </ul> This map can be inverted
+  /// with its member class \c InverseMap.
   ///
   /// \param _Graph The graph class the \c DescriptorMap belongs to.
@@ -755,7 +763,7 @@
 
   public:
-    /// \brief The inverse map type.
-    ///
-    /// The inverse map type.
+    /// \brief The inverse map type of DescriptorMap.
+    ///
+    /// The inverse map type of DescriptorMap.
     class InverseMap {
     public:
@@ -874,5 +882,5 @@
   /// \brief Returns a \ref TargetMap class
   ///
-  /// This function just returns an \ref TargetMap class.
+  /// This function just returns a \ref TargetMap class.
   /// \relates TargetMap
   template <typename Graph>
@@ -881,7 +889,7 @@
   }
 
-  /// \brief Returns the "forward" directed edge view of undirected edge.
-  ///
-  /// Returns the "forward" directed edge view of undirected edge.
+  /// \brief Returns the "forward" directed edge view of an undirected edge.
+  ///
+  /// Returns the "forward" directed edge view of an undirected edge.
   /// \author Balazs Dezso
   template <typename Graph>
@@ -922,7 +930,7 @@
   }
 
-  /// \brief Returns the "backward" directed edge view of undirected edge.
-  ///
-  /// Returns the "backward" directed edge view of undirected edge.
+  /// \brief Returns the "backward" directed edge view of an undirected edge.
+  ///
+  /// Returns the "backward" directed edge view of an undirected edge.
   /// \author Balazs Dezso
   template <typename Graph>
@@ -955,5 +963,5 @@
   /// \brief Returns a \ref BackwardMap class
 
-  /// This function just returns an \ref BackwardMap class.
+  /// This function just returns a \ref BackwardMap class.
   /// \relates BackwardMap
   template <typename Graph>
@@ -976,7 +984,7 @@
   /// \brief Map of the node in-degrees.
   ///
-  /// This map returns the in-degree of a node. Ones it is constructed,
+  /// This map returns the in-degree of a node. Once it is constructed,
   /// the degrees are stored in a standard NodeMap, so each query is done
-  /// in constant time. On the other hand, the values updates automatically
+  /// in constant time. On the other hand, the values are updated automatically
   /// whenever the graph changes.
   ///
@@ -1068,7 +1076,7 @@
   /// \brief Map of the node out-degrees.
   ///
-  /// This map returns the out-degree of a node. One it is constructed,
+  /// This map returns the out-degree of a node. Once it is constructed,
   /// the degrees are stored in a standard NodeMap, so each query is done
-  /// in constant time. On the other hand, the values updates automatically
+  /// in constant time. On the other hand, the values are updated automatically
   /// whenever the graph changes.
   ///
Index: lemon/graph_writer.h
===================================================================
--- lemon/graph_writer.h	(revision 1534)
+++ lemon/graph_writer.h	(revision 1540)
@@ -38,4 +38,5 @@
   /// Before you read this documentation it might be useful to read the general
   /// description of  \ref graph-io-page "Graph Input-Output".
+  ///
   /// If you don't need very sophisticated
   /// behaviour then you can use the versions of the public function
@@ -165,4 +166,5 @@
     }
 
+
     /// \brief Issue a new node map writing command for the writer.
     ///
@@ -239,5 +241,6 @@
     /// to access the encapsulated \e LemonWriter, this way
     /// you can attach to this writer new instances of 
-    /// \e LemonWriter::SectionWriter.
+    /// \e LemonWriter::SectionWriter. For more details see
+    /// the \ref rwbackground "Background of Reading and Writing".
     operator LemonWriter&() {
       return *writer;
@@ -569,5 +572,5 @@
     /// This function issues a new <i> undirected edge map writing
     /// command</i> to the writer.
-    template <typename Writer, typename Map>
+   template <typename Writer, typename Map>
     UndirGraphWriter& writeUndirEdgeMap(std::string name, const Map& map,
 					const Writer& writer = Writer()) {
Index: lemon/lp_glpk.cc
===================================================================
--- lemon/lp_glpk.cc	(revision 1473)
+++ lemon/lp_glpk.cc	(revision 1540)
@@ -446,5 +446,5 @@
     case LPX_D_UNDEF://Undefined (no solve has been run yet)
       return UNDEFINED;
-    case LPX_D_NOFEAS://There is no feasible solution (primal, I guess)
+    case LPX_D_NOFEAS://There is no dual feasible solution 
 //    case LPX_D_INFEAS://Infeasible 
       return INFEASIBLE;
