diff --git a/NEWS b/NEWS
index 9fe7a78e4ed9fc3eb2acbd3dab56f151f2eb988a..115aa8de1b966cffb4fed338411d986681cb782b 100644
--- a/NEWS
+++ b/NEWS
@@ -44,6 +44,8 @@ Changes in version 1.4.0:
     - Removed ecrt_domain_register_pdo_range(), because it's functionality can
       be reached by specifying an explicit Pdo mapping and registering those
       Pdo entries.
+    - Added an Sdo access interface, working with Sdo requests. These can be
+      scheduled for reading and writing during realtime operation.
 * Pdo configuration is now supported.
 * Current Pdo mapping/configuration is now read via CoE during bus scan, using
   direct Sdo access, independent of the dictionary.
diff --git a/TODO b/TODO
index e7b0ac4277b62184e68bfea61eb59a51c31b9473..ba40eae785430ec80a7fb1570f85c9c3704b6613 100644
--- a/TODO
+++ b/TODO
@@ -8,6 +8,7 @@ $Id$
 
 Version 1.4.0:
 
+* Slave config allow flag and completion object.
 * Mailbox handler
 * READMEs for examples.
 * Remove get_cycles() calls and references to cpu_khz to increase
diff --git a/include/ecrt.h b/include/ecrt.h
index 3a1882cf194d8f77dd9408fcc3114ae9f4557d07..a7423d33e6ee14774f381736fc6040789fd2a513 100644
--- a/include/ecrt.h
+++ b/include/ecrt.h
@@ -33,9 +33,9 @@
 
 /** \file
  *
- * EtherCAT Real-Time Interface.
+ * EtherCAT Realtime Interface.
  *
- * \defgroup RealtimeInterface EtherCAT Real-Time Interface
+ * \defgroup RealtimeInterface EtherCAT Realtime Interface
  *
  * EtherCAT interface for realtime modules. This interface is designed for
  * realtime modules that want to use EtherCAT. There are functions to request
@@ -81,6 +81,8 @@
  * - Removed ecrt_domain_register_pdo_range(), because it's functionality can
  *   be reached by specifying an explicit Pdo mapping and registering those
  *   Pdo entries.
+ * - Added an Sdo access interface, working with Sdo requests. These can be
+ *   scheduled for reading and writing during realtime operation.
  *
  * @{
  */
@@ -102,19 +104,19 @@
  * Global definitions
  *****************************************************************************/
 
-/** EtherCAT real-time interface major version number.
+/** EtherCAT realtime interface major version number.
  */
 #define ECRT_VER_MAJOR 1
 
-/** EtherCAT real-time interface minor version number.
+/** EtherCAT realtime interface minor version number.
  */
 #define ECRT_VER_MINOR 4
 
-/** EtherCAT real-time interface version word generator.
+/** EtherCAT realtime interface version word generator.
  */
 #define ECRT_VERSION(a, b) (((a) << 8) + (b))
 
-/** EtherCAT real-time interface version word.
+/** EtherCAT realtime interface version word.
  */
 #define ECRT_VERSION_MAGIC ECRT_VERSION(ECRT_VER_MAJOR, ECRT_VER_MINOR)
 
@@ -635,6 +637,8 @@ void ecrt_domain_state(
  *
  * If the request cannot be processed in the specified time, if will be marked
  * as failed.
+ *
+ * \todo The timeout functionality is not yet implemented.
  */
 void ecrt_sdo_request_timeout(
         ec_sdo_request_t *req, /**< Sdo request. */
@@ -643,8 +647,9 @@ void ecrt_sdo_request_timeout(
 
 /** Access to the Sdo request's data.
  *
- * \attention The return value is invalid during a read operation, because the
- * internal Sdo data memory could be re-allocated.
+ * \attention The return value can be invalid during a read operation, because
+ * the internal Sdo data memory could be re-allocated if the read Sdo data do
+ * not fit inside.
  *
  * \return Pointer to the internal Sdo data memory.
  */
@@ -661,16 +666,22 @@ ec_sdo_request_state_t ecrt_sdo_request_state(
     );
 
 /** Schedule an Sdo write operation.
+ *
+ * \attention This method may not be called while ecrt_sdo_request_state()
+ * returns EC_SDO_REQUEST_BUSY.
  */
 void ecrt_sdo_request_write(
         ec_sdo_request_t *req /**< Sdo request. */
         );
 
-/** Schedule an Sdo read operation .
+/** Schedule an Sdo read operation.
  *
- * \attention After calling this function, the return value of
- * ecrt_sdo_request_data() will be invalid while ecrt_sdo_request_state()
+ * \attention This method may not be called while ecrt_sdo_request_state()
  * returns EC_SDO_REQUEST_BUSY.
+ *
+ * \attention After calling this function, the return value of
+ * ecrt_sdo_request_data() must be considered as invalid while
+ * ecrt_sdo_request_state() returns EC_SDO_REQUEST_BUSY.
  */
 void ecrt_sdo_request_read(
         ec_sdo_request_t *req /**< Sdo request. */