diff --git a/src/language/ASTBuilder.cpp b/src/language/ASTBuilder.cpp
index 82a60d54dce5ee68f5559a8c0c85e5ed9f4afc12..1952dc39f9bf42d2fa9ee66f435b6d62baf0104b 100644
--- a/src/language/ASTBuilder.cpp
+++ b/src/language/ASTBuilder.cpp
@@ -116,7 +116,7 @@ struct ASTBuilder::simplify_statement_bloc : parse_tree::apply<ASTBuilder::simpl
   static void
   transform(std::unique_ptr<ASTNode>& n, States&&... st)
   {
-    if (n->children.size() == 1) {
+    if ((n->id == typeid(language::statement_bloc) or n->id == typeid(language::bloc)) and (n->children.size() == 1)) {
       if (not n->children[0]->is<language::declaration>()) {
         n->remove_content();
         n = std::move(n->children.back());
@@ -134,7 +134,8 @@ struct ASTBuilder::simplify_for_statement_bloc : parse_tree::apply<ASTBuilder::s
   static void
   transform(std::unique_ptr<ASTNode>& n, States&&... st)
   {
-    if (n->children.size() == 1) {
+    if ((n->id == typeid(language::for_statement_bloc) or n->id == typeid(language::bloc)) and
+        (n->children.size() == 1)) {
       n->remove_content();
       n = std::move(n->children.back());
       transform(n, st...);