diff --git a/doc/auctex.texi b/doc/auctex.texi
index 4156a0b..052ca42 100644
--- a/doc/auctex.texi
+++ b/doc/auctex.texi
@@ -1063,13 +1063,16 @@ Specifies whether @code{TeX-insert-macro} will ask for all optional
 arguments.
 
 If set to the symbol @code{show-optional-args}, @code{TeX-insert-macro}
-asks for optional arguments of @TeX{} macros.  If set to
-@code{mandatory-args-only}, @code{TeX-insert-macro} asks only for
-mandatory arguments.  When @code{TeX-insert-macro} is called with prefix
-argument (@kbd{C-u}), it's the other way round.
+asks for optional arguments of @TeX{} marcos, unless the previous
+optional argument has been rejected.  If set to
+@code{show-all-optional-args}, @code{TeX-insert-macro} asks for all
+optional arguments.  @code{mandatory-args-only}, @code{TeX-insert-macro}
+asks only for mandatory arguments.  When @code{TeX-insert-macro} is
+called with prefix argument (@kbd{C-u}), it's the other way round.
 
 Note that for some macros, there are special mechanisms, e.g.
-@code{LaTeX-includegraphics-options-alist}.
+@code{LaTeX-includegraphics-options-alist} and
+@code{TeX-arg-cite-note-p}.
 
 @end defopt
 
diff --git a/doc/changes.texi b/doc/changes.texi
index df69cb4..183ff82 100644
--- a/doc/changes.texi
+++ b/doc/changes.texi
@@ -31,7 +31,9 @@ provided as well.
 
 @item
 New user options @code{LaTeX-default-author} and
-@code{TeX-insert-braces-alist}.
+@code{TeX-insert-braces-alist}.  A new possible value
+(@code{show-all-optional-args}) for
+@code{TeX-insert-macro-default-style} was added.
 
 @item
 @samp{biblatex} support was greatly expanded.  If parsing is enabled,
diff --git a/tex.el b/tex.el
index 1ab9647..0541acf 100644
--- a/tex.el
+++ b/tex.el
@@ -2611,18 +2611,22 @@ the variable `TeX-insert-braces'."
 (defcustom TeX-insert-macro-default-style 'show-optional-args
   "Specifies whether `TeX-insert-macro' will ask for all optional arguments.
 
-If set to the symbol `show-optional-args', `TeX-insert-macro' asks for
-optional arguments of TeX marcos.  If set to `mandatory-args-only',
+If set to the symbol `show-optional-args', `TeX-insert-macro'
+asks for optional arguments of TeX marcos, unless the previous
+optional argument has been rejected.  If set to
+`show-all-optional-args', `TeX-insert-macro' asks for all
+optional arguments.  If set to `mandatory-args-only',
 `TeX-insert-macro' asks only for mandatory argument.
 
 When `TeX-insert-macro' is called with \\[universal-argument], it's the other
 way round.
 
 Note that for some macros, there are special mechanisms, see e.g.
-`LaTeX-includegraphics-options-alist'."
+`LaTeX-includegraphics-options-alist' and `TeX-arg-cite-note-p'."
   :group 'TeX-macro
   :type '(choice (const mandatory-args-only)
-		 (const show-optional-args)))
+		 (const show-optional-args)
+		 (const show-all-optional-args)))
 
 (defvar TeX-arg-opening-brace nil
   "String used as an opening brace for argument insertion.
@@ -2778,11 +2782,14 @@ See `TeX-parse-macro' for details."
       (if (vectorp (car args))
 	  ;; Maybe get rid of all optional arguments.  See `TeX-insert-macro'
 	  ;; for more comments.  See `TeX-insert-macro-default-style'.
-	  (unless (or (and (eq TeX-insert-macro-default-style 'show-optional-args)
-			   (equal current-prefix-arg '(4)))
-		      (and (eq TeX-insert-macro-default-style 'mandatory-args-only)
-			   (null (equal current-prefix-arg '(4))))
-		      last-optional-rejected)
+	  (unless (if (eq TeX-insert-macro-default-style 'show-all-optional-args)
+		      (equal current-prefix-arg '(4))
+		    (or
+		     (and (eq TeX-insert-macro-default-style 'show-optional-args)
+			  (equal current-prefix-arg '(4)))
+		     (and (eq TeX-insert-macro-default-style 'mandatory-args-only)
+			  (null (equal current-prefix-arg '(4))))
+		     last-optional-rejected))
 	    (let ((TeX-arg-opening-brace LaTeX-optop)
 		  (TeX-arg-closing-brace LaTeX-optcl))
 	      (TeX-parse-argument t (if (equal (length (car args)) 1)
