diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index ade415745296204fc35cb18b0aef6e5f0aa75f8a..f5ed1821edbc59b0a5222f77bbee25603b04d223 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -30,6 +30,8 @@ Changes in Release 2.9.0
    even though there is no experimental evidence. The approach with trimmed
    models removes any model residue that cannot be mapped to the target
    structure before scoring.
+ * The SDF reader is now aware of IOProfiles and can read files with invalid
+   bond types (order) from RDKit in fault tolerant mode.
  * Several bug fixes and improvements.
 
 Changes in Release 2.8.0
diff --git a/modules/io/doc/io.rst b/modules/io/doc/io.rst
index d4c364c2ce328aedf03b35aa1ce16c115a3bc49e..933f33cc3639d771808b3be71c64a26b5d23f7be 100644
--- a/modules/io/doc/io.rst
+++ b/modules/io/doc/io.rst
@@ -119,22 +119,18 @@ behaviour.
 
   :rtype: :class:`~ost.mol.EntityHandle`.
 
+.. autofunction:: ost.io.LoadSDF
 
-.. function:: LoadSDF(filename)
-
-  Load an SDF file and return an entity.
-
-  :param filename: File to be loaded
-  :type filename: :class:`str`
-
-  :rtype: :class:`~ost.mol.EntityHandle`
-
-.. function:: SDFStrToEntity(sdf_string)
+.. function:: SDFStrToEntity(sdf_string, profile=IOProfile())
 
   Load entity from a string in SDF format.
 
   :param pdb_string: A SDF file as a string.
 
+  :param profile: The IO Profile to read the entity with. For more information
+      on the IO Profiles available, see :doc:`profile`.
+  :type profile: :class:`ost.io.IOProfile`
+
   :rtype: :class:`~ost.mol.EntityHandle`.
 
 .. class:: ost.io.OMF