diff --git a/doc/rst/source/gmtspatial.rst b/doc/rst/source/gmtspatial.rst
index 232d431c70b..acd68f338dd 100644
--- a/doc/rst/source/gmtspatial.rst
+++ b/doc/rst/source/gmtspatial.rst
@@ -15,7 +15,7 @@ Synopsis
**gmt spatial** [ *table* ]
[ |-A|\ [**a**\ *min_dist*][*unit*]]
[ |-C| ]
-[ |-D|\ [**+a**\ *amax*][**+c\|C**\ *cmax*][**+d**\ *dmax*][**+f**\ *file*][**+p**][**+s**\ *fact*] ]
+[ |-D|\ [**+a**\ *amax*][**+c\|C**\ *cmax*][**+d**\ *dmax*][**+f**\ *file*][**+p**][**+s**\ *factor*] ]
[ |-E|\ **+p**\|\ **n** ]
[ |-F|\ [**l**] ]
[ |-I|\ [**e**\|\ **i**] ]
diff --git a/src/gmtspatial.c b/src/gmtspatial.c
index a0e0522bac3..b035a2455ee 100644
--- a/src/gmtspatial.c
+++ b/src/gmtspatial.c
@@ -766,7 +766,7 @@ GMT_LOCAL struct NN_INFO *gmtspatial_NNA_update_info (struct GMT_CTRL *GMT, stru
static int usage (struct GMTAPI_CTRL *API, int level) {
const char *name = gmt_show_name_and_purpose (API, THIS_MODULE_LIB, THIS_MODULE_CLASSIC_NAME, THIS_MODULE_PURPOSE);
if (level == GMT_MODULE_PURPOSE) return (GMT_NOERROR);
- GMT_Usage (API, 0, "usage: %s [
] [-A[a]] [-C] [-D[+c|C][+d][+f][+p][+s]] [-E+n|p] "
+ GMT_Usage (API, 0, "usage: %s [] [-A[a]] [-C] [-D[+a][+c|C][+d][+f][+p][+s]] [-E+n|p] "
"[-F[l]] [-I[i|e]] [-L%s//] [-N[+a][+i][+p[]][+r][+z]] [-Q[][+c[/]][+h][+l][+p][+s[a|d]]] [%s] "
"[-Sb|h|s] [-T[]] [-W[][+f|l]] [%s] [%s] [%s] [%s] [%s] [%s] [%s] [%s] [%s] [%s] [%s] [%s] [%s] [%s] [%s]\n", name, GMT_DIST_OPT, GMT_Rgeo_OPT,
GMT_V_OPT, GMT_a_OPT, GMT_b_OPT, GMT_d_OPT, GMT_e_OPT, GMT_f_OPT, GMT_g_OPT, GMT_h_OPT, GMT_i_OPT, GMT_j_OPT, GMT_o_OPT, GMT_q_OPT, GMT_s_OPT, GMT_colon_OPT, GMT_PAR_OPT);
@@ -783,7 +783,7 @@ static int usage (struct GMTAPI_CTRL *API, int level) {
"Considers 3rd column as z (if present) and 4th as w, if present [weight = 1].");
GMT_Usage (API, 1, "\n-C Clip polygons to the given region box (requires -R), possibly yielding new closed polygons. "
"For truncation instead (possibly yielding open polygons, i.e., lines), see -T.");
- GMT_Usage (API, 1, "\n-D[+c|C][+d][+f][+p][+s]");
+ GMT_Usage (API, 1, "\n-D[+a][+c|C][+d][+f][+p][+s]");
GMT_Usage (API, -2, "Look for (near-)duplicate lines or polygons. Duplicate lines have a minimum point separation less than and a closeness "
"ratio (mean separation/length) less than . "
"If near-duplicates have lengths that differ by or more then they are subsets or supersets. "
@@ -795,7 +795,7 @@ static int usage (struct GMTAPI_CTRL *API, int level) {
GMT_Usage (API, 3, "+d Set minimum mean point separation [0].");
GMT_Usage (API, 3, "+f Compare against instead of itself.");
GMT_Usage (API, 3, "+p limit comparison to points that project perpendicularly on to the other line [all points].");
- GMT_Usage (API, 3, "+s Set length ratio difference threshold [2].");
+ GMT_Usage (API, 3, "+s Set length ratio difference threshold factor [2].");
GMT_Usage (API, 1, "\n-E+n|p");
GMT_Usage (API, -2, "Orient all polygons to have the same handedness:");
GMT_Usage (API, 3, "+n Impose clockwise (negative) handedness.");
diff --git a/src/longopt/gmtspatial_inc.h b/src/longopt/gmtspatial_inc.h
index a49847aa57c..2322381472d 100644
--- a/src/longopt/gmtspatial_inc.h
+++ b/src/longopt/gmtspatial_inc.h
@@ -25,53 +25,44 @@ static struct GMT_KEYWORD_DICTIONARY module_kw[] = {
short_directives, long_directives,
short_modifiers, long_modifiers,
transproc_mask */
- { 0, 'A', "",
- "", "",
- "", "",
- GMT_TP_STANDARD },
- { 0, 'C', "",
- "", "",
- "", "",
- GMT_TP_STANDARD },
- { 0, 'D', "",
- "", "",
- "", "",
- GMT_TP_STANDARD },
- { 0, 'E', "",
- "", "",
+ { 0, 'A', "nn|nearest_neighbor",
+ "a", "min_dist",
"", "",
GMT_TP_STANDARD },
- { 0, 'F', "",
- "", "",
+ { 0, 'C', "clip", "", "", "", "", GMT_TP_STANDARD },
+ { 0, 'D', "duplicates",
"", "",
+ "a,c,C,d,f,p,s", "amax,cmax,cmin,dmax,file,perpendicular,factor",
GMT_TP_STANDARD },
- { 0, 'I', "",
- "", "",
+ { 0, 'E', "handedness",
"", "",
+ "p,n", "positive|counterclockwise,negative|clockwise",
GMT_TP_STANDARD },
- { 0, 'L', "",
- "", "",
+ { 0, 'F', "force_polygons",
+ "l", "lines",
"", "",
GMT_TP_STANDARD },
- { 0, 'N', "",
- "", "",
+ { 0, 'I', "intersections",
+ "e,i", "external,internal",
"", "",
GMT_TP_STANDARD },
- { 0, 'Q', "",
- "", "",
+ { 0, 'L', "no_tile_lines", "", "", "", "", GMT_TP_STANDARD },
+ { 0, 'N', "in_polygons",
"", "",
+ "a,i,p,r,z", "all,individual,start,report,addcolumn",
GMT_TP_STANDARD },
- { 0, 'S', "",
- "", "",
+ { 0, 'Q', "centroid|area|length",
"", "",
+ "c,h,l,p,s", "range|limits,header,lines,close,sort",
GMT_TP_STANDARD },
- { 0, 'T', "",
- "", "",
+ { 0, 'S', "spatial",
+ "b,h,i,j,s,u", "buffer,hole|holes,intersection,join,dateline,union",
"", "",
GMT_TP_STANDARD },
- { 0, 'W', "",
- "", "",
+ { 0, 'T', "truncate", "", "", "", "", GMT_TP_STANDARD },
+ { 0, 'W', "extend",
"", "",
+ "f,l", "first,last",
GMT_TP_STANDARD },
{ 0, '\0', "", "", "", "", "", 0 } /* End of list marked with empty option and strings */
};