Index: doc/refrat/refrat.tex
===================================================================
--- doc/refrat/refrat.tex	(revision 971ae895f89a0d93c8f2a9929900852750c396b0)
+++ doc/refrat/refrat.tex	(revision 2f9956bd13de85adb344abd36007fe8eb05d5aaa)
@@ -4041,5 +4041,33 @@
 
 
-\setcounter{subsection}{2}
+\subsection{Labeled statements}
+
+\begin{syntax}
+\oldlhs{labeled-statement}
+\rhs \lstinline$case$ \nonterm{case-value-list} : \nonterm{statement}
+\lhs{case-value-list}
+\rhs \nonterm{case-value}
+\rhs \nonterm{case-value-list} \lstinline$,$ \nonterm{case-value}
+\lhs{case-value}
+\rhs \nonterm{constant-expression}
+\rhs \nonterm{subrange}
+\lhs{subrange}
+\rhs \nonterm{constant-expression} \lstinline$~$ \nonterm{constant-expression}
+\end{syntax}
+
+The following have identical meaning:
+\begin{lstlisting}
+case 1:@\ \ @case 2:@\ \ @case 3:@\ \ @case 4:@\ \ @case 5:
+case 1, 2, 3, 4, 5:
+case 1~5:
+\end{lstlisting}
+The multiple subranges are allowed:
+\begin{lstlisting}
+case 1~4, 9~14, 27~32:
+\end{lstlisting}
+
+The \lstinline$case$ and \lstinline$default$ clauses are restricted within the \lstinline$switch$ and \lstinline$choose$ statements, precluding Duff's device.
+
+
 \subsection{Expression and null statements}
 
@@ -4049,7 +4077,13 @@
 \subsection{Selection statements}
 
-The controlling expression \lstinline$E$ in the switch statement
+\begin{syntax}
+\oldlhs{selection-statement}
+\rhs \lstinline$choose$ \lstinline$($ \nonterm{expression} \lstinline$)$ \nonterm{statement}
+\end{syntax}
+
+The controlling expression \lstinline$E$ in the \lstinline$switch$ and \lstinline$choose$ statement:
 \begin{lstlisting}
 switch ( E ) ...
+choose ( E ) ...
 \end{lstlisting}
 may have more than one interpretation, but it shall have only one interpretation with an integral
@@ -4058,4 +4092,37 @@
 
 
+\setcounter{subsubsection}{3}
+\subsubsection{The \lstinline$choose$ statement}
+
+The \lstinline$choose$ statement is the same as the \lstinline$switch$ statement except control transfers to the end of the \lstinline$choose$ statement at a \lstinline$case$ or \lstinline$default$ labeled statement.
+The \lstinline$fallthru$ statement is used to fall through to the next \lstinline$case$ or \lstinline$default$ labeled statement.
+
+The following have identical meaning:
+\begin{flushleft}
+\begin{tabular}{@{\hspace{2em}}l@{\hspace{2em}}l@{}}
+\begin{lstlisting}
+switch (...) {
+  case 1: ... ; break;
+  case 2: ... ; break;
+  case 3: ... ; // fall through
+  case 4: ... ; // fall through
+  default: ... break;
+}
+\end{lstlisting}
+&
+\begin{lstlisting}
+choose (...) {
+  case 1: ... ; // exit
+  case 2: ... ; // exit
+  case 3: ... ; fallthru;
+  case 4: ... ; fallthru;
+  default: ... ; // exit
+}
+\end{lstlisting}
+\end{tabular}
+\end{flushleft}
+The \lstinline$choose$ statement addresses the problem of accidental fall-through associated with \lstinline$switch$ statement.
+
+
 \subsection{Iteration statements}
 
@@ -4074,5 +4141,5 @@
 is treated as
 \begin{lstlisting}
-for ( ( void )( a ); ( int )(( b )!=0); ( void )( c ) ) @\ldots@
+for ( ( void )( a ); ( int )(( b )!=0); ( void )( c ) ) ...
 \end{lstlisting}
 
@@ -4080,6 +4147,51 @@
 \subsection{Jump statements}
 
-An expression in a \lstinline$return$ statement is treated as being 
-cast to the result type of the function.
+\begin{syntax}
+\oldlhs{jump-statement}
+\rhs \lstinline$continue$ \nonterm{identifier}\opt
+\rhs \lstinline$break$ \nonterm{identifier}\opt
+\end{syntax}
+
+Labeled \lstinline$continue$ and \lstinline$break$ allow useful but restricted control-flow that reduces the need for the \lstinline$goto$ statement for exiting multiple nested control-structures.
+\begin{lstlisting}
+L1: {							// compound
+  L2: switch ( ... ) {			// switch
+    case ...:
+	  L3: for ( ;; ) {			// outer for
+		L4: for ( ;; ) {		// inner for
+				continue L1;	// error: not enclosing iteration
+				continue L2;	// error: not enclosing iteration
+				continue L3;	// next iteration of outer for
+				continue L4;	// next iteration of inner for
+				break L1;		// exit compound
+				break L2;		// exit switch
+				break L3;		// exit outer for
+				break L4;		// exit inner for
+			} // for
+		} // for
+		break;					// exit switch
+	  default:
+		break L1;				// exit compound
+	} // switch
+	...
+} // compound
+\end{lstlisting}
+
+
+\setcounter{subsubsection}{1}
+\subsubsection{The \lstinline$continue$ statement}
+
+The identifier in a \lstinline$continue$ statement shall name a label located on an enclosing iteration statement.
+
+
+\subsubsection{The \lstinline$break$ statement}
+
+The identifier in a \lstinline$break$ statement shall name a label located on an enclosing compound, selection or iteration statement.
+
+
+\subsubsection{The \lstinline$return$ statement}
+
+An expression in a \lstinline$return$ statement is treated as being cast to the result type of the
+function.
 
 
