diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 6862d5e..6747fe2 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -1433,23 +1433,23 @@ include_dir 'conf.d'
       </term>
       <listitem>
        <para>
-        Sets the maximum size of all text search dictionaries loaded into shared
-        memory.  The default is 100 megabytes (<literal>100MB</literal>).  This
-        parameter can only be set at server start.
+        Specifies the amount of shared memory to be used to store full-text search
+        search dictionaries.  The default is 100 megabytes (<literal>100MB</literal>).
+        This parameter can only be set at server start.
        </para>
 
        <para>
-        Currently controls only loading of <application>Ispell</application>
-        dictionaries (see <xref linkend="textsearch-ispell-dictionary"/>).
-        After compiling the dictionary it will be copied into shared memory.
-        Another backends on first use of the dictionary will use it from shared
-        memory, so it doesn't need to compile the dictionary second time.
+        Currently only <application>Ispell</application> dictionaries (see
+        <xref linkend="textsearch-ispell-dictionary"/>) may be loaded into
+        shared memory. The first backend requesting the dictionary will
+        build it and copy it into shared memory, so that other backends can
+        reuse it without having to build it again.
        </para>
 
        <para>
-        If total size of simultaneously loaded dictionaries reaches the maximum
-        allowed size then a new dictionary will be loaded into local memory of
-        a backend.
+        If the size of simultaneously loaded dictionaries reaches the maximum
+        allowed size, additional dictionares will be loaded into private backend
+        memory (effectively disabling the sharing).
        </para>
       </listitem>
      </varlistentry>
diff --git a/src/backend/tsearch/ts_shared.c b/src/backend/tsearch/ts_shared.c
index bfc5292..22d58a0 100644
--- a/src/backend/tsearch/ts_shared.c
+++ b/src/backend/tsearch/ts_shared.c
@@ -22,7 +22,7 @@
 
 
 /*
- * Hash table structures
+ * Hash table entries representing shared dictionaries.
  */
 typedef struct
 {
@@ -37,7 +37,8 @@ typedef struct
 static dshash_table *dict_table = NULL;
 
 /*
- * Shared struct for locking
+ * Information about the main shmem segment, used to coordinate
+ * access to the hash table and dictionaries.
  */
 typedef struct
 {
@@ -53,8 +54,8 @@ typedef struct
 static TsearchCtlData *tsearch_ctl;
 
 /*
- * GUC variable for maximum number of shared dictionaries. Default value is
- * 100MB.
+ * Maximum allowed amount of shared memory for shared dictionaries,
+ * in kilobytes. Default value is 100MB.
  */
 int			max_shared_dictionaries_size = 100 * 1024;
 
@@ -213,7 +202,7 @@ ts_dict_shmem_location(DictInitData *initoptions,
 
 /*
  * Release memory occupied by the dictionary. Function just unpins DSM mapping.
- * If nobody else hasn't mapping to this DSM then unping DSM segment.
+ * If nobody else hasn't mapping to this DSM then unpin DSM segment.
  *
  * dictid: Oid of the dictionary.
  */
@@ -312,6 +301,7 @@ init_dict_table(void)
 	MemoryContext old_context;
 	dsa_area   *dsa;
 
+	/* bail out if shared dictionaries not allowed */
 	if (max_shared_dictionaries_size == 0)
 		return;
 
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 172627a..b10ec48 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -2939,7 +2939,7 @@ static struct config_int ConfigureNamesInt[] =
 			gettext_noop("Currently controls only loading of Ispell dictionaries. "
 						 "If total size of simultaneously loaded dictionaries "
 						 "reaches the maximum allowed size then a new dictionary "
-						 "will be loaded into local memory of a backend."),
+						 "will be loaded into private backend memory."),
 			GUC_UNIT_KB,
 		},
 		&max_shared_dictionaries_size,
