diff --git a/src/yang_schema.cpp b/src/yang_schema.cpp
index 8b870fc..28ef7d6 100644
--- a/src/yang_schema.cpp
+++ b/src/yang_schema.cpp
@@ -245,7 +245,13 @@
                 res.insert(it->path(LYS_PATH_FIRST_PREFIX));
             }
         } else {
-            res.insert(std::string(node->module()->name()) + ":" + node->name());
+            std::string toInsert;
+            if (path.m_nodes.empty() || path.m_nodes.front().m_prefix.get().m_name != node->module()->name()) {
+                toInsert += node->module()->name();
+                toInsert += ":";
+            }
+            toInsert += node->name();
+            res.insert(toInsert);
         }
     }
 
diff --git a/tests/yang.cpp b/tests/yang.cpp
index 76b3c15..5846a23 100644
--- a/tests/yang.cpp
+++ b/tests/yang.cpp
@@ -9,7 +9,28 @@
 #include "trompeloeil_catch.h"
 #include "yang_schema.hpp"
 
-const char* schema = R"(
+const char* second_schema = R"(
+module second-schema {
+    namespace "http://example.com/nevim";
+    prefix second;
+
+    import example-schema {
+        prefix "example";
+    }
+
+    augment /example:a {
+        container augmentedContainer {
+        }
+    }
+
+    container bla {
+        container bla2 {
+        }
+    }
+}
+)";
+
+const char* example_schema = R"(
 module example-schema {
     yang-version 1.1;
     namespace "http://example.com/example-sports";
@@ -122,8 +143,14 @@
 
 TEST_CASE("yangschema")
 {
+    using namespace std::string_view_literals;
     YangSchema ys;
-    ys.addSchemaString(schema);
+    ys.registerModuleCallback([]([[maybe_unused]] auto modName, auto, auto) {
+        assert("example-schema"sv == modName);
+        return example_schema;
+    });
+    ys.addSchemaString(second_schema);
+
     schemaPath_ path;
     ModuleNodePair node;
 
@@ -354,13 +381,19 @@
                        "example-schema:leafDecimal", "example-schema:leafBool", "example-schema:leafInt",
                        "example-schema:leafUint", "example-schema:leafEnum", "example-schema:leafEnumTypedef",
                        "example-schema:leafEnumTypedefRestricted", "example-schema:leafEnumTypedefRestricted2",
-                       "example-schema:_list", "example-schema:twoKeyList"};
+                       "example-schema:_list", "example-schema:twoKeyList", "second-schema:bla"};
             }
 
-            SECTION("a")
+            SECTION("example-schema:a")
             {
                 path.m_nodes.push_back(schemaNode_(module_{"example-schema"}, container_("a")));
-                set = {"example-schema:a2", "example-schema:leafa"};
+                set = {"a2", "leafa", "second-schema:augmentedContainer"};
+            }
+
+            SECTION("second-schema:bla")
+            {
+                path.m_nodes.push_back(schemaNode_(module_{"second-schema"}, container_("bla")));
+                set = {"bla2"};
             }
 
             REQUIRE(ys.childNodes(path, Recursion::NonRecursive) == set);
