diff --git a/eslint/babel-eslint-parser/acorn-to-esprima.js b/eslint/babel-eslint-parser/acorn-to-esprima.js
index <HASH>..<HASH> 100644
--- a/eslint/babel-eslint-parser/acorn-to-esprima.js
+++ b/eslint/babel-eslint-parser/acorn-to-esprima.js
@@ -30,11 +30,6 @@ var astTransformVisitor = {
       delete node.argument;
     }
 
-    if (t.isClassProperty(node)) {
-      // eslint doesn't like these
-      this.remove();
-    }
-
     if (t.isImportBatchSpecifier(node)) {
       // ImportBatchSpecifier<name> => ImportNamespaceSpecifier<id>
       node.type = "ImportNamespaceSpecifier";
@@ -42,6 +37,19 @@ var astTransformVisitor = {
       delete node.name;
     }
 
+    // classes
+    
+    if (t.isClassDeclaration(node)) {
+      return t.variableDeclaration("let", [
+        t.variableDeclarator(node.id, node)
+      ]);
+    }
+
+    if (t.isClassProperty(node)) {
+      // eslint doesn't like these
+      this.remove();
+    }
+
     // JSX
 
     if (t.isJSXIdentifier(node)) {
turn class declarations into variable declarations - fixes babel/babel-eslint#8