Index: src/Parser/ParseNode.h
===================================================================
--- src/Parser/ParseNode.h	(revision c99a0d1d83786675887a035019c801e7cbfeed0c)
+++ src/Parser/ParseNode.h	(revision 0be463ccec08940642e1dd9510d5ad53a4d03b33)
@@ -437,4 +437,5 @@
 WaitForStmt * build_waitfor_timeout( ExpressionNode * timeout, StatementNode * stmt, ExpressionNode * when, StatementNode * else_stmt, ExpressionNode * else_when );
 Statement * build_with( ExpressionNode * exprs, StatementNode * stmt );
+Statement * build_mutex( ExpressionNode * exprs, StatementNode * stmt );
 
 //##############################################################################
Index: src/Parser/StatementNode.cc
===================================================================
--- src/Parser/StatementNode.cc	(revision c99a0d1d83786675887a035019c801e7cbfeed0c)
+++ src/Parser/StatementNode.cc	(revision 0be463ccec08940642e1dd9510d5ad53a4d03b33)
@@ -374,4 +374,11 @@
 } // build_directive
 
+Statement * build_mutex( ExpressionNode * exprs, StatementNode * stmt ) {
+	std::list< Expression * > expList;
+	buildMoveList( exprs, expList );
+	Statement * body = maybeMoveBuild<Statement>( stmt );
+	return new MutexStmt( body, expList );
+} // build_mutex
+
 // Local Variables: //
 // tab-width: 4 //
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision c99a0d1d83786675887a035019c801e7cbfeed0c)
+++ src/Parser/parser.yy	(revision 0be463ccec08940642e1dd9510d5ad53a4d03b33)
@@ -1347,5 +1347,5 @@
 mutex_statement:
 	MUTEX '(' argument_expression_list_opt ')' statement
-		{ SemanticError( yylloc, "Mutex statement is currently unimplemented." ); $$ = nullptr; }
+		{ $$ = new StatementNode( build_mutex( $3, $5 ) ); }
 	;
 
