diff --git a/doc/src/sgml/ref/declare.sgml b/doc/src/sgml/ref/declare.sgml
index 641971149a..e93b4cf594 100644
--- a/doc/src/sgml/ref/declare.sgml
+++ b/doc/src/sgml/ref/declare.sgml
@@ -1,5 +1,5 @@
@@ -228,6 +228,20 @@ DECLARE name [ BINARY ] [ INSENSITI
SCROLL may not be specified in this case.
+
+
+ Scrollable and WITH HOLD cursors may give unexpected
+ results if they invoke any volatile functions (see ). When a previously fetched row is
+ re-fetched, the functions might be re-executed, perhaps leading to
+ results different from the first time. One workaround for such cases
+ is to declare the cursor WITH HOLD and commit the
+ transaction before reading any rows from it. This will force the
+ entire output of the cursor to be materialized in temporary storage,
+ so that volatile functions are executed exactly once for each row.
+
+
+
If the cursor's query includes FOR UPDATE> or FOR
SHARE>, then returned rows are locked at the time they are first