diff -rupdwN /home/chad/downloads/dlang/dmd.2.036/html/d/cppstrings.html ./html/d/cppstrings.html
--- /home/chad/downloads/dlang/dmd.2.036/html/d/cppstrings.html	2009-10-14 20:03:42.000000000 -0400
+++ ./html/d/cppstrings.html	2009-11-20 16:26:06.000000000 -0500
@@ -283,8 +283,8 @@ foo(std.string.<b>toStringz</b>(s1));
 
 <pre class="d_code"><span class="d_keyword">switch</span> (str)
 {
-    <span class="d_keyword">case</span> <span class="d_string">"hello"</span>:
-    <span class="d_keyword">case</span> <span class="d_string">"world"</span>:
+    <span class="d_keyword">case</span> <span class="d_string">"hello"</span>: <span class="d_keyword">break</span>;
+    <span class="d_keyword">case</span> <span class="d_string">"world"</span>: <span class="d_keyword">break</span>;
 	...
 }
 </pre>
diff -rupdwN /home/chad/downloads/dlang/dmd.2.036/html/d/lex.html ./html/d/lex.html
--- /home/chad/downloads/dlang/dmd.2.036/html/d/lex.html	2009-10-14 20:03:42.000000000 -0400
+++ ./html/d/lex.html	2009-11-20 15:46:40.000000000 -0500
@@ -375,6 +375,7 @@
 	<b>&gt;&gt;</b>
 	<b>&gt;&gt;&gt;</b>
 	<b>!</b>
+	<b>!:</b>
 	<b>!=</b>
 	<b>!&lt;&gt;</b>
 	<b>!&lt;&gt;=</b>
diff -rupdwN /home/chad/downloads/dlang/dmd.2.036/html/d/phobos/std_getopt.html ./html/d/phobos/std_getopt.html
--- /home/chad/downloads/dlang/dmd.2.036/html/d/phobos/std_getopt.html	2009-11-04 22:39:16.000000000 -0500
+++ ./html/d/phobos/std_getopt.html	2009-11-20 16:27:12.000000000 -0500
@@ -380,7 +380,7 @@ considered handled and removed from the 
       <span class="d_keyword">case</span> <span class="d_string">"quiet"</span>: verbosityLevel = 0; <span class="d_keyword">break</span>;
       <span class="d_keyword">case</span> <span class="d_string">"verbose"</span>: verbosityLevel = 2; <span class="d_keyword">break</span>;
       <span class="d_keyword">case</span> <span class="d_string">"shouting"</span>: verbosityLevel = verbosityLevel.max; <span class="d_keyword">break</span>;
-      <span class="d_keyword">default</span> :
+      <span class="d_keyword">default</span> !:
         stderr.writeln(<span class="d_string">"Dunno how verbose you want me to be by saying "</span>,
           value);
         exit(1);
diff -rupdwN /home/chad/downloads/dlang/dmd.2.036/html/d/statement.html ./html/d/statement.html
--- /home/chad/downloads/dlang/dmd.2.036/html/d/statement.html	2009-10-14 20:03:42.000000000 -0400
+++ ./html/d/statement.html	2009-11-20 19:01:40.000000000 -0500
@@ -870,11 +870,18 @@ a = <span class="d_keyword">null</span>;
 	<b>switch (</b> <a href="expression.html#Expression"><i>Expression</i></a> <b>)</b> <a href="#ScopeStatement"><i>ScopeStatement</i></a>
 
 <a name="CaseStatement">CaseStatement</a>:
-	<b>case</b> <i>ExpressionList</i> <b>:</b> <a href="#Statement"><i>Statement</i></a>
+	<b>case</b> <i>ExpressionList</i> <i>CaseAnchor</i> <a href="#Statement"><i>Statement</i></a>
 
 <a name="CaseRangeStatement">CaseRangeStatement</a>:
+	<i>CaseRangeBranchStatement</i>
+	<i>CaseRangeFallthroughStatement</i>
+	
+<a name="CaseRangeBranchStatement">CaseRangeBranchStatement</a>:
 	<b>case</b> <i>FirstExp</i> <b>: .. case</b> <i>LastExp</i> <b>:</b> <a href="#Statement"><i>Statement</i></a>
 
+<a name="CaseRangeFallthroughStatement">CaseRangeFallthroughStatement</a>:
+	<b>case</b> <i>FirstExp</i> <b>!: .. case</b> <i>LastExp</i> <b>!:</b> <a href="#Statement"><i>Statement</i></a>
+
 <i>FirstExp</i>:
 	<i>AssignExpression</i>
 
@@ -882,7 +889,11 @@ a = <span class="d_keyword">null</span>;
 	<i>AssignExpression</i>
 
 <a name="DefaultStatement">DefaultStatement</a>:
-	<b>default :</b> <a href="#Statement"><i>Statement</i></a>
+	<b>default</b> <i>CaseAnchor</i> <a href="#Statement"><i>Statement</i></a>
+	
+<i>CaseAnchor</i>:
+	:
+	!:
 </pre>
 
 	<p><a href="expression.html#Expression"><i>Expression</i></a> is evaluated. The result type T must be
@@ -897,7 +908,7 @@ a = <span class="d_keyword">null</span>;
 	</p>
 
 	<p>A <i>CaseRangeStatement</i> is a shorthand for listing a series
-	of case statements from <i>FirstExp</i> to <i>LastExp</i>.
+	of case statements from <i>FirstExp</i> to <i>LastExp</i>, including <i>FirstExp</i> and <i>LastExp</i>.
 	</p>
 
 
@@ -932,43 +943,79 @@ a = <span class="d_keyword">null</span>;
 	There may not be two or more default statements.
 	</p>
 
-	<p>Case statements and default statements associated with the switch
-	can be nested within block statements; they do not have to be in
-	the outermost block. For example, this is allowed:
+	<p>Case statements and default statements come in two flavors: 'fall 
+	through' and 'unconditional branch'.
 	</p>
 
-<pre class="d_code">    <span class="d_keyword">switch</span> (i)
-    {
-	<span class="d_keyword">case</span> 1:
-	{
-	    <span class="d_keyword">case</span> 2:
-	}
-	    <span class="d_keyword">break</span>;
-    }
-</pre>
+	<p>The 'unconditional branch' variety are denoted with a normal colon (:) 
+	like C and C++ case statements.  However, unlike C and C++, the block
+	contained by these must end in one of these unconditional branch statements:
+	break, return, continue, goto, goto case, goto default, or throw.  The
+	reasons for this are to prevent the common mistake of forgetting to place 
+	break at the end of a case statement and to encourage the catching of 
+	such mistakes while porting C and C++ code to D.
+	</p>
 
-	<p>Case statements 'fall through' to subsequent
-	case values. A break statement will exit the switch <i>BlockStatement</i>.
-	For example:
+	<p>
+	The 'fall through' variety are denoted with the !: token.  These behave like
+	the traditional C and C++ case statements and allow for case statements to
+	'fall through' to subsequent case values.  
 	</p>
 
+	<p> A break statement will exit the switch <i>BlockStatement</i>. </p>
+	
+	<p> Here is an example of these features: </p>
+	
 <pre class="d_code"><span class="d_keyword">switch</span> (i)
 {
-    <span class="d_keyword">case</span> 1:
+    <span class="d_keyword">case</span> 1!:
 	x = 3;
-    <span class="d_keyword">case</span> 2:
+    <span class="d_keyword">case</span> 2!:
 	x = 4;
 	<span class="d_keyword">break</span>;
 
     <span class="d_keyword">case</span> 3,4,5:
 	x = 5;
 	<span class="d_keyword">break</span>;
+	
+    <span class="d_keyword">case</span> 6: <span class="d_comment">// Error: use !: instead of :</span>
+    <span class="d_keyword">case</span> 7: <span class="d_comment">// Fine, ends with goto case.</span>
+	<span class="d_keyword">goto case</span> 1;
+	
+    <span class="d_keyword">case</span> 8:
+	<span class="d_keyword">break</span>;
+	x = 6; <span class="d_comment">// Error: break; must be the last statement for case 8.</span>
 }
 </pre>
 
-	<p>will set <tt>x</tt> to <tt>4</tt> if <tt>i</tt> is <tt>1</tt>.
+	<p>will set <tt>x</tt> to <tt>4</tt> if <tt>i</tt> is <tt>1</tt>,
+	<tt>2</tt>, or <tt>7</tt>.<br>
+	if <tt>i</tt> is <tt>3</tt>, <tt>4</tt>, or <tt>5</tt> then <tt>x</tt> is
+	set to <tt>5</tt>.
+	</p>
+
+	<p>Case statements and default statements associated with the switch
+	can be nested within block statements; they do not have to be in
+	the outermost block. For example, this is allowed:
 	</p>
 
+<pre class="d_code">    <span class="d_keyword">switch</span> (i)
+    {
+	<span class="d_keyword">case</span> 1:
+	{
+	    <span class="d_keyword">case</span> 2!:
+	}
+	    <span class="d_keyword">break</span>;
+    }
+</pre>
+
+<!--
+	<p>Case statements 'fall through' to subsequent
+	case values. A break statement will exit the switch <i>BlockStatement</i>.
+	For example:
+	</p>
+-->
+
 	<p>Strings can be used in switch
 	expressions. For example:
 	</p>
@@ -977,8 +1024,8 @@ a = <span class="d_keyword">null</span>;
 ...
 <span class="d_keyword">switch</span> (name)
 {
-    <span class="d_keyword">case</span> <span class="d_string">"fred"</span>:
-    <span class="d_keyword">case</span> <span class="d_string">"sally"</span>:
+    <span class="d_keyword">case</span> <span class="d_string">"fred"</span>!:
+    <span class="d_keyword">case</span> <span class="d_string">"sally"</span>!:
 	...
 }
 </pre>
diff -rupdwN /home/chad/downloads/dlang/dmd.2.036/html/d/template-mixin.html ./html/d/template-mixin.html
--- /home/chad/downloads/dlang/dmd.2.036/html/d/template-mixin.html	2009-10-14 20:03:44.000000000 -0400
+++ ./html/d/template-mixin.html	2009-11-20 16:20:36.000000000 -0500
@@ -267,14 +267,14 @@
 	    <span class="d_keyword">typeof</span>(id1) n = (id2 - id1 + 7) / 8;
 	    <span class="d_keyword">switch</span> ((id2 - id1) % 8)
 	    {
-		<span class="d_keyword">case</span> 0:        <span class="d_keyword">do</span> {  s();
-		<span class="d_keyword">case</span> 7:              s();
-		<span class="d_keyword">case</span> 6:              s();
-		<span class="d_keyword">case</span> 5:              s();
-		<span class="d_keyword">case</span> 4:              s();
-		<span class="d_keyword">case</span> 3:              s();
-		<span class="d_keyword">case</span> 2:              s();
-		<span class="d_keyword">case</span> 1:              s();
+		<span class="d_keyword">case</span> 0!:        <span class="d_keyword">do</span> {  s();
+		<span class="d_keyword">case</span> 7!:              s();
+		<span class="d_keyword">case</span> 6!:              s();
+		<span class="d_keyword">case</span> 5!:              s();
+		<span class="d_keyword">case</span> 4!:              s();
+		<span class="d_keyword">case</span> 3!:              s();
+		<span class="d_keyword">case</span> 2!:              s();
+		<span class="d_keyword">case</span> 1!:              s();
 				  } <span class="d_keyword">while</span> (--n &gt; 0);
 	    }
 	}
diff -rupdwN /home/chad/downloads/dlang/dmd.2.036/html/d/warnings.html ./html/d/warnings.html
--- /home/chad/downloads/dlang/dmd.2.036/html/d/warnings.html	2009-10-14 20:03:44.000000000 -0400
+++ ./html/d/warnings.html	2009-11-20 16:19:37.000000000 -0500
@@ -537,7 +537,7 @@ a = <span class="d_keyword">cast</span>(
 {
     <span class="d_keyword">case</span> 1: dothis(); <span class="d_keyword">break</span>;
     <span class="d_keyword">case</span> 2: dothat(); <span class="d_keyword">break</span>;
-    <b><span class="d_keyword">default</span>: <span class="d_keyword">assert</span>(0);</b>
+    <b><span class="d_keyword">default</span>!: <span class="d_keyword">assert</span>(0);</b>
 }
 </pre>
 	</li>
