diff --git a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrLexer.java b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrLexer.java
index a87c761..b7a59da 100644
--- a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrLexer.java
+++ b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrLexer.java
@@ -25,7 +25,6 @@
 import org.netbeans.spi.lexer.TokenFactory;
 
 import static org.antlr.parser.antlr4.ANTLRv4Lexer.*;
-import org.antlr.v4.runtime.CharStream;
 import static org.netbeans.modules.languages.antlr.AntlrTokenId.*;
 
 /**
diff --git a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrTokenId.java b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrTokenId.java
index cb5f5b2..480ec40 100644
--- a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrTokenId.java
+++ b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrTokenId.java
@@ -33,6 +33,7 @@
 import org.netbeans.spi.lexer.LanguageProvider;
 import org.netbeans.spi.lexer.Lexer;
 import org.netbeans.spi.lexer.LexerRestartInfo;
+import org.openide.filesystems.FileObject;
 import org.openide.util.Lookup;
 
 /**
@@ -80,13 +81,13 @@
                 }
 
                 @Override
-                protected Map<String, Collection<AntlrTokenId>> createTokenCategories() {
-                    return new HashMap<>();
-                }
-
-                @Override
                 protected Lexer<AntlrTokenId> createLexer(LexerRestartInfo<AntlrTokenId> info) {
-                    return new AntlrLexer(info);
+                    FileObject fo =(FileObject) info.getAttributeValue(FileObject.class);
+                    if (fo != null) {
+                        return new AntlrLexer(info);
+                    } else {
+                        return null;
+                    }
                 }
 
                 @Override
@@ -113,7 +114,6 @@
                 }
             }.language();
 
-    @MimeRegistration(mimeType = MIME_TYPE, service = Language.class)
     public static Language<AntlrTokenId> language() {
         return language;
     }
diff --git a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/layer.xml b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/layer.xml
index a691529..f4682b2 100644
--- a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/layer.xml
+++ b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/layer.xml
@@ -46,9 +46,6 @@
     </folder>
     <folder name="Loaders">
         <folder name="text">
-            <folder name="x-antlr3">
-                <attr name="iconBase" stringvalue="org/netbeans/modules/languages/antlr/resources/antlr.png"/>
-            </folder>
             <folder name="x-antlr4">
                 <attr name="iconBase" stringvalue="org/netbeans/modules/languages/antlr/resources/antlr.png"/>
             </folder>
