diff --git a/README.md b/README.md
index 8b2c3e4..3c6d2b8 100644
--- a/README.md
+++ b/README.md
@@ -274,6 +274,7 @@ Rule|Level|Source|Enabled|Suppressible
[UniformEnumConstantName](#uniformenumconstantname)|naming|sevntu|Yes|
[UniqueProperties](#uniqueproperties)|javadoc|checkstyle|Yes|
[UnnecessaryParentheses](#unnecessaryparentheses)|layout|checkstyle|Yes|
+[UnnecessarySemicolonAfterOuterTypeDeclaration](#unnecessarysemicolonafteroutertypedeclaration)|layout|checkstyle|Yes|
[UnusedImports](#unusedimports)|layout|checkstyle|Yes|
[UpperEll](#upperell)|layout|checkstyle|Yes|
[UselessSingleCatch](#uselesssinglecatch)|tweaks|sevntu|Yes|
@@ -2134,6 +2135,55 @@ Invalid:
````
if ((a < 1)) {}
````
+#### [UnnecessarySemicolonAfterOuterTypeDeclaration](https://checkstyle.sourceforge.io/config_coding.html#UnnecessarySemicolonAfterOuterTypeDeclaration)
+
+Checks if unnecessary semicolon is used after type declaration.
+
+Valid:
+````java
+class A {
+
+ class Nested {
+
+ }; // OK, nested type declarations are ignored
+
+}
+
+interface B {
+
+}
+
+enum C {
+
+}
+
+@interface D {
+
+}
+````
+
+Invalid:
+````java
+class A {
+
+ class Nested {
+
+ }; // OK, nested type declarations are ignored
+
+}; // violation
+
+interface B {
+
+}; // violation
+
+enum C {
+
+}; // violation
+
+@interface D {
+
+}; // violation
+````
#### [UnusedImports](http://checkstyle.sourceforge.net/config_imports.html#UnusedImports)
Checks for unused imports. Does not inspect wildcard imports, which should be blocked by [AvoidStarImport](#avoidstarimport) anyway.
diff --git a/builder/src/main/resources/application.yml b/builder/src/main/resources/application.yml
index b225b0b..c9ce6aa 100644
--- a/builder/src/main/resources/application.yml
+++ b/builder/src/main/resources/application.yml
@@ -1573,3 +1573,10 @@ rules:
enabled: true
source: CHECKSTYLE
uri: https://checkstyle.sourceforge.io/config_javadoc.html#JavadocMissingWhitespaceAfterAsterisk
+ -
+ name: UnnecessarySemicolonAfterOuterTypeDeclaration
+ parent: TREEWALKER
+ level: LAYOUT
+ enabled: true
+ source: CHECKSTYLE
+ uri: https://checkstyle.sourceforge.io/config_coding.html#UnnecessarySemicolonAfterOuterTypeDeclaration
diff --git a/builder/src/main/resources/rules/UnnecessarySemicolonAfterOuterTypeDeclaration.md b/builder/src/main/resources/rules/UnnecessarySemicolonAfterOuterTypeDeclaration.md
new file mode 100644
index 0000000..8569da5
--- /dev/null
+++ b/builder/src/main/resources/rules/UnnecessarySemicolonAfterOuterTypeDeclaration.md
@@ -0,0 +1,48 @@
+
+Checks if unnecessary semicolon is used after type declaration.
+
+Valid:
+````java
+class A {
+
+ class Nested {
+
+ }; // OK, nested type declarations are ignored
+
+}
+
+interface B {
+
+}
+
+enum C {
+
+}
+
+@interface D {
+
+}
+````
+
+Invalid:
+````java
+class A {
+
+ class Nested {
+
+ }; // OK, nested type declarations are ignored
+
+}; // violation
+
+interface B {
+
+}; // violation
+
+enum C {
+
+}; // violation
+
+@interface D {
+
+}; // violation
+````
diff --git a/ruleset/src/main/resources/net/kemitix/checkstyle-1-layout.xml b/ruleset/src/main/resources/net/kemitix/checkstyle-1-layout.xml
index 09a1c27..effd1e8 100644
--- a/ruleset/src/main/resources/net/kemitix/checkstyle-1-layout.xml
+++ b/ruleset/src/main/resources/net/kemitix/checkstyle-1-layout.xml
@@ -56,6 +56,7 @@
+
diff --git a/ruleset/src/main/resources/net/kemitix/checkstyle-2-naming.xml b/ruleset/src/main/resources/net/kemitix/checkstyle-2-naming.xml
index 82c363e..fc62f88 100644
--- a/ruleset/src/main/resources/net/kemitix/checkstyle-2-naming.xml
+++ b/ruleset/src/main/resources/net/kemitix/checkstyle-2-naming.xml
@@ -83,6 +83,7 @@
+
diff --git a/ruleset/src/main/resources/net/kemitix/checkstyle-3-javadoc.xml b/ruleset/src/main/resources/net/kemitix/checkstyle-3-javadoc.xml
index 8e6a90d..d219bfa 100644
--- a/ruleset/src/main/resources/net/kemitix/checkstyle-3-javadoc.xml
+++ b/ruleset/src/main/resources/net/kemitix/checkstyle-3-javadoc.xml
@@ -102,6 +102,7 @@
+
diff --git a/ruleset/src/main/resources/net/kemitix/checkstyle-4-tweaks.xml b/ruleset/src/main/resources/net/kemitix/checkstyle-4-tweaks.xml
index ffa8529..2dcdf67 100644
--- a/ruleset/src/main/resources/net/kemitix/checkstyle-4-tweaks.xml
+++ b/ruleset/src/main/resources/net/kemitix/checkstyle-4-tweaks.xml
@@ -145,6 +145,7 @@
+
diff --git a/ruleset/src/main/resources/net/kemitix/checkstyle-5-complexity.xml b/ruleset/src/main/resources/net/kemitix/checkstyle-5-complexity.xml
index d5f5904..0ed63b5 100644
--- a/ruleset/src/main/resources/net/kemitix/checkstyle-5-complexity.xml
+++ b/ruleset/src/main/resources/net/kemitix/checkstyle-5-complexity.xml
@@ -192,6 +192,7 @@
+