diff --git a/tools/lint/cmd_print.c b/tools/lint/cmd_print.c
index 7d68823..823ca7b 100644
--- a/tools/lint/cmd_print.c
+++ b/tools/lint/cmd_print.c
@@ -93,8 +93,9 @@
     LY_ERR erc;
     char *name, *revision;
     ly_bool search_submodul;
+    const int stop = argc - optind;
 
-    for (int i = 0; i < argc - optind; i++) {
+    for (int i = 0; i < stop; i++) {
         name = argv[optind + i];
         /* get revision */
         revision = strchr(name, '@');
@@ -113,6 +114,10 @@
         }
 
         if (erc == LY_SUCCESS) {
+            /* for YANG Tree Diagrams printing it's more readable to print a blank line between modules. */
+            if ((format == LYS_OUT_TREE) && (i + 1 < stop)) {
+                ly_print(out, "\n");
+            }
             continue;
         } else if (erc == LY_ENOTFOUND) {
             if (revision) {
diff --git a/tools/lint/main_ni.c b/tools/lint/main_ni.c
index 76b6fe0..13eb1cd 100644
--- a/tools/lint/main_ni.c
+++ b/tools/lint/main_ni.c
@@ -26,6 +26,7 @@
 #include "libyang.h"
 
 #include "common.h"
+#include "out.h"
 #include "tools/config.h"
 
 /**
@@ -733,6 +734,10 @@
                 for (uint32_t u = 0; u < c.schema_modules.count; ++u) {
                     ret = lys_print_module(c.out, (struct lys_module *)c.schema_modules.objs[u], c.schema_out_format,
                             c.line_length, c.schema_print_options);
+                    /* for YANG Tree Diagrams printing it's more readable to print a blank line between modules. */
+                    if ((c.schema_out_format == LYS_OUT_TREE) && (u + 1 < c.schema_modules.count)) {
+                        ly_print(c.out, "\n");
+                    }
                     if (ret) {
                         YLMSG_E("Unable to print module %s.\n", ((struct lys_module *)c.schema_modules.objs[u])->name);
                         goto cleanup;
