Fixed: [Issue 168] Groups can contain Messages and Extensions.
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue168_GroupsCanHaveMessagesAndExtensions_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue168_GroupsCanHaveMessagesAndExtensions_Test.java
new file mode 100644
index 0000000..088c366
--- /dev/null
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue168_GroupsCanHaveMessagesAndExtensions_Test.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2011 Google Inc.
+ *
+ * All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse
+ * Public License v1.0 which accompanies this distribution, and is available at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ */
+package com.google.eclipse.protobuf.bugs;
+
+import static com.google.eclipse.protobuf.junit.core.Setups.unitTestSetup;
+import static com.google.eclipse.protobuf.junit.core.XtextRule.createWith;
+
+import com.google.eclipse.protobuf.junit.core.*;
+
+import org.junit.*;
+
+/**
+ * Tests fix for <a href="http://code.google.com/p/protobuf-dt/issues/detail?id=168">Issue 168</a>.
+ *
+ * @author alruiz@google.com (Alex Ruiz)
+ */
+public class Issue168_GroupsCanHaveMessagesAndExtensions_Test {
+
+  @Rule public XtextRule xtext = createWith(unitTestSetup());
+  
+  // syntax = "proto2";
+  //
+  // message TopMessage {
+  //   message MidMessage {
+  //     message BottomMessage {
+  //       extensions 4 to max;
+  //     }
+  //
+  //     optional group BottomGroup = 1 {
+  //      extensions 4 to max;
+  //     }
+  //   }
+  //
+  //   optional group MidGroup = 2 {
+  //     message BottomMessage {
+  //       extensions 4 to max;
+  //     }
+  //
+  //     optional group BottomGroup = 3 {
+  //       extensions 4 to max;
+  //     }
+  //   }
+  // }
+  @Test public void should_recognize_messages_and_extensions_in_groups() {
+    // should not find syntax errors
+  }
+}
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/Protobuf.xtext b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/Protobuf.xtext
index 0a95feb..a620330 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/Protobuf.xtext
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/Protobuf.xtext
@@ -49,9 +49,6 @@
 MessageElement:
   Option | Extensions | ComplexType | MessageField | MessageExtension;
 
-Extensions:
-  'extensions' ranges+=Range (',' ranges+=Range)* ';';
-
 Range:
   from=LONG ('to' to=RangeMax)?;
 
@@ -65,7 +62,10 @@
   '}' (';')?;
 
 GroupElement:
-  Option | IndexedElement | Enum | MessageExtension;
+  Option | IndexedElement | ComplexType | MessageExtension | Extensions;
+
+Extensions:
+  'extensions' ranges+=Range (',' ranges+=Range)* ';';
 
 MessageField:
   =>modifier=Modifier type=TypeLink name=Name '=' index=(LONG | HEX)