diff --git a/tools/lint/main_ni.c b/tools/lint/main_ni.c
index 35acf4d..6a3e73b 100644
--- a/tools/lint/main_ni.c
+++ b/tools/lint/main_ni.c
@@ -289,6 +289,7 @@
 {
     struct ly_in *in;
     struct schema_features *sf;
+    struct lys_module *mod;
     const char *all_features[] = {"*", NULL};
 
     /* process the operational content if any */
@@ -340,7 +341,7 @@
             ly_in_free(in, 1);
             in = NULL;
             if (ret) {
-                YLMSG_E("Processing schema module from %s failed.\n", argv[optind + i]);
+                YLMSG_E("Parsing schema module \"%s\" failed.\n", argv[optind + i]);
                 goto error;
             }
 
@@ -362,17 +363,24 @@
         }
     }
 
-    /* check that all secified features were applied */
-    sf = get_features_not_applied(&c->schema_features);
-    if (sf) {
-        if (ly_ctx_get_module_implemented(c->ctx, sf->mod_name)) {
-            YLMSG_E("Specified features not applied, module \"%s\" must be parsed explicitly.\n", sf->mod_name);
-        } else if (ly_ctx_get_module_latest(c->ctx, sf->mod_name)) {
-            YLMSG_E("Specified features not applied, module \"%s\" not implemented.\n", sf->mod_name);
-        } else {
-            YLMSG_E("Specified features not applied, module \"%s\" not found.\n", sf->mod_name);
+    /* check that all specified features were applied, apply now if possible */
+    while ((sf = get_features_not_applied(&c->schema_features))) {
+        /* try to find implemented or the latest revision of this module */
+        mod = ly_ctx_get_module_implemented(c->ctx, sf->mod_name);
+        if (!mod) {
+            mod = ly_ctx_get_module_latest(c->ctx, sf->mod_name);
         }
-        goto error;
+        if (!mod) {
+            YLMSG_E("Specified features not applied, module \"%s\" not loaded.\n", sf->mod_name);
+            goto error;
+        }
+
+        /* we have the module, implement it if needed and enable the specific features */
+        if (lys_set_implemented(mod, (const char **)sf->features)) {
+            YLMSG_E("Implementing module \"%s\" failed.\n", mod->name);
+            goto error;
+        }
+        sf->applied = 1;
     }
 
     return 0;
