diff --git a/docs/manual.html b/docs/manual.html
index e1dce8768..e8b901aa5 100755
--- a/docs/manual.html
+++ b/docs/manual.html
@@ -1222,6 +1222,14 @@ struct torrent_handle
The default constructor will initialize the handle to an invalid state. Which means you cannot
perform any operation on it, unless you first assign it a valid handle. If you try to perform
any operation on an uninitialized handle, it will throw invalid_handle.
+
+
Warning
+
All operations on a torrent_handle may throw invalid_handle
+exception, in case the handle is no longer refering to a torrent. There are
+two exceptions, info_hash() and is_valid() will never throw.
+Since the torrents are processed by a background thread, there is no
+guarantee that a handle will remain valid between two calls.
+
TODO: document filter_piece(), filter_pieces(), is_piece_filtered(), filtered_pieces() and filter_files()
diff --git a/docs/manual.rst b/docs/manual.rst
index 9967d07ef..257d7a797 100755
--- a/docs/manual.rst
+++ b/docs/manual.rst
@@ -1160,6 +1160,12 @@ The default constructor will initialize the handle to an invalid state. Which me
perform any operation on it, unless you first assign it a valid handle. If you try to perform
any operation on an uninitialized handle, it will throw ``invalid_handle``.
+.. warning:: All operations on a ``torrent_handle`` may throw invalid_handle_
+ exception, in case the handle is no longer refering to a torrent. There are
+ two exceptions, ``info_hash()`` and ``is_valid()`` will never throw.
+ Since the torrents are processed by a background thread, there is no
+ guarantee that a handle will remain valid between two calls.
+
*TODO: document filter_piece(), filter_pieces(), is_piece_filtered(), filtered_pieces() and filter_files()*
file_progress()