diff --git a/Changelog.md b/Changelog.md
index fa01287e4..c9f4d2318 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -26,6 +26,7 @@ Bugfixes:
* SMTChecker: Fix internal error when trying to generate counterexamples with old z3.
* SMTChecker: Fix segmentation fault that could occur on certain SMT-enabled sources when no SMT solver was available.
* Type Checker: ``super`` is not available in libraries.
+ * Type Checker: Disallow leading zeroes in sized-types (e.g. ``bytes000032``), but allow them to be treated as identifiers.
* Yul Optimizer: Fix a bug in NameSimplifier where a new name created by NameSimplifier could also be created by NameDispenser.
* Yul Optimizer: Removed NameSimplifier from optimization steps available to users.
diff --git a/docs/grammar/SolidityLexer.g4 b/docs/grammar/SolidityLexer.g4
index c70a99d91..1549e26e4 100644
--- a/docs/grammar/SolidityLexer.g4
+++ b/docs/grammar/SolidityLexer.g4
@@ -33,7 +33,7 @@ Event: 'event';
External: 'external';
Fallback: 'fallback';
False: 'false';
-Fixed: 'fixed' | ('fixed' [0-9]+ 'x' [0-9]+);
+Fixed: 'fixed' | ('fixed' [1-9][0-9]* 'x' [1-9][0-9]*);
From: 'from';
/**
* Bytes types of fixed length.
@@ -86,7 +86,7 @@ Struct: 'struct';
True: 'true';
Try: 'try';
Type: 'type';
-Ufixed: 'ufixed' | ('ufixed' [0-9]+ 'x' [0-9]+);
+Ufixed: 'ufixed' | ('ufixed' [1-9][0-9]+ 'x' [1-9][0-9]+);
/**
* Sized unsigned integer types.
* uint is an alias of uint256.
diff --git a/liblangutil/Token.cpp b/liblangutil/Token.cpp
index 28180514a..31f1f310e 100644
--- a/liblangutil/Token.cpp
+++ b/liblangutil/Token.cpp
@@ -41,7 +41,6 @@
// along with solidity. If not, see .
#include
-#include
#include