Index: src/Parser/DeclarationNode.cc
===================================================================
--- src/Parser/DeclarationNode.cc	(revision 861799c7471bc5f428e98ee82e5cc722ab2ffda7)
+++ src/Parser/DeclarationNode.cc	(revision ebb5ed97e24d201a4b63b9fcebd313093b1bf3bc)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 12:34:05 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Mar  7 08:02:09 2017
-// Update Count     : 936
+// Last Modified On : Tue Mar  7 17:28:56 2017
+// Update Count     : 937
 //
 
@@ -359,5 +359,9 @@
 	DeclarationNode * newnode = new DeclarationNode;
 	newnode->type = new TypeData( TypeData::Pointer );
-	return newnode->addQualifiers( qualifiers );
+	if ( qualifiers ) {
+		return newnode->addQualifiers( qualifiers );
+	} else {
+		return newnode;
+	} // if
 } // DeclarationNode::newPointer
 
Index: src/Parser/TypeData.h
===================================================================
--- src/Parser/TypeData.h	(revision 861799c7471bc5f428e98ee82e5cc722ab2ffda7)
+++ src/Parser/TypeData.h	(revision ebb5ed97e24d201a4b63b9fcebd313093b1bf3bc)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 15:18:36 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Mar  7 08:03:53 2017
-// Update Count     : 173
+// Last Modified On : Wed Mar  8 22:28:33 2017
+// Update Count     : 174
 //
 
@@ -76,19 +76,19 @@
 	DeclarationNode::Length length = DeclarationNode::NoLength;
 	DeclarationNode::BuiltinType builtintype = DeclarationNode::NoBuiltinType;
+
 	typedef std::bitset< DeclarationNode::NoTypeQualifier > TypeQualifiers;
 	TypeQualifiers typeQualifiers;
 	DeclarationNode * forall;
 
-		// Basic_t basic;
-		Aggregate_t aggregate;
-		AggInst_t aggInst;
-		Array_t array;
-		Enumeration_t enumeration;
-		// Variable_t variable;
-		Function_t function;
-		Symbolic_t symbolic;
-		DeclarationNode * tuple;
-		ExpressionNode * typeexpr;
-		// DeclarationNode::BuiltinType builtin;
+	// Basic_t basic;
+	Aggregate_t aggregate;
+	AggInst_t aggInst;
+	Array_t array;
+	Enumeration_t enumeration;
+	// Variable_t variable;
+	Function_t function;
+	Symbolic_t symbolic;
+	DeclarationNode * tuple;
+	ExpressionNode * typeexpr;
 
 	TypeData( Kind k = Unknown );
Index: src/Parser/lex.ll
===================================================================
--- src/Parser/lex.ll	(revision 861799c7471bc5f428e98ee82e5cc722ab2ffda7)
+++ src/Parser/lex.ll	(revision ebb5ed97e24d201a4b63b9fcebd313093b1bf3bc)
@@ -10,6 +10,6 @@
  * Created On       : Sat Sep 22 08:58:10 2001
  * Last Modified By : Peter A. Buhr
- * Last Modified On : Fri Mar  3 22:18:00 2017
- * Update Count     : 502
+ * Last Modified On : Thu Mar  9 21:38:26 2017
+ * Update Count     : 505
  */
 
@@ -202,4 +202,5 @@
 __const__		{ KEYWORD_RETURN(CONST); }				// GCC
 continue		{ KEYWORD_RETURN(CONTINUE); }
+_Coroutine		{ KEYWORD_RETURN(COROUTINE); }			// CFA
 default			{ KEYWORD_RETURN(DEFAULT); }
 disable			{ KEYWORD_RETURN(DISABLE); }			// CFA
@@ -235,4 +236,5 @@
 long			{ KEYWORD_RETURN(LONG); }
 lvalue			{ KEYWORD_RETURN(LVALUE); }				// CFA
+_Monitor		{ KEYWORD_RETURN(MONITOR); }			// CFA
 mutex			{ KEYWORD_RETURN(MUTEX); }				// CFA
 _Noreturn		{ KEYWORD_RETURN(NORETURN); }			// C11
@@ -254,4 +256,5 @@
 struct			{ KEYWORD_RETURN(STRUCT); }
 switch			{ KEYWORD_RETURN(SWITCH); }
+_Thread			{ KEYWORD_RETURN(THREAD); }				// C11
 _Thread_local	{ KEYWORD_RETURN(THREADLOCAL); }		// C11
 throw			{ KEYWORD_RETURN(THROW); }				// CFA
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 861799c7471bc5f428e98ee82e5cc722ab2ffda7)
+++ src/Parser/parser.yy	(revision ebb5ed97e24d201a4b63b9fcebd313093b1bf3bc)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Mar  5 15:48:24 2017
-// Update Count     : 2227
+// Last Modified On : Thu Mar  9 21:40:20 2017
+// Update Count     : 2292
 //
 
@@ -104,4 +104,5 @@
 %token TYPEOF LABEL										// GCC
 %token ENUM STRUCT UNION
+%token COROUTINE MONITOR THREAD							// CFA
 %token OTYPE FTYPE DTYPE TTYPE TRAIT					// CFA
 %token SIZEOF OFFSETOF
@@ -223,6 +224,6 @@
 %type<decl> external_function_definition function_definition function_array function_declarator function_no_ptr function_ptr
 
-%type<decl> identifier_parameter_array identifier_parameter_declarator identifier_parameter_function
-%type<decl> identifier_parameter_ptr identifier_list
+%type<decl> identifier_parameter_declarator identifier_parameter_ptr identifier_parameter_array identifier_parameter_function
+%type<decl> identifier_list
 
 %type<decl> cfa_abstract_array cfa_abstract_declarator_no_tuple cfa_abstract_declarator_tuple
@@ -270,5 +271,6 @@
 %type<en> type_name_list
 
-%type<decl> type_qualifier type_qualifier_name type_qualifier_list type_qualifier_list_opt type_specifier type_specifier_nobody
+%type<decl> type_qualifier type_qualifier_name type_qualifier_list_opt type_qualifier_list
+%type<decl> type_specifier type_specifier_nobody
 
 %type<decl> variable_declarator variable_ptr variable_array variable_function
@@ -1633,4 +1635,10 @@
 	| UNION
 		{ $$ = DeclarationNode::Union; }
+	| COROUTINE
+		{ $$ = DeclarationNode::Struct; }
+	| MONITOR
+		{ $$ = DeclarationNode::Struct; }
+	| THREAD
+		{ $$ = DeclarationNode::Struct; }
 	;
 
