diff --git a/src/path_parser.hpp b/src/path_parser.hpp
index 04a2dba..6725831 100644
--- a/src/path_parser.hpp
+++ b/src/path_parser.hpp
@@ -291,8 +291,8 @@
         if constexpr (PARSER_MODE == PathParserMode::DataPathListEnd || PARSER_MODE == PathParserMode::AnyPath) {
             if (!res || !pathEnd.parse(begin, end, ctx, rctx, x3::unused)) {
                 dataNode_ attrNodeList;
-                res = incompleteDataNode<COMPLETION_MODE>{m_filterFunction}.parse(begin, end, ctx, rctx, attrNodeList);
-                if (res) {
+                auto hasListEnd = incompleteDataNode<COMPLETION_MODE>{m_filterFunction}.parse(begin, end, ctx, rctx, attrNodeList);
+                if (hasListEnd) {
                     attrData.m_nodes.emplace_back(attrNodeList);
                     // If the trailing slash matches, no more nodes are parsed.
                     // That means no more completion. So, I generate them
@@ -460,7 +460,6 @@
 
 auto const getPath_def =
     PathParser<PathParserMode::DataPathListEnd, CompletionMode::Data>{noRpcOrAction} |
-    PathParser<PathParserMode::DataPath, CompletionMode::Data>{noRpcOrAction} |
     (module >> "*");
 
 auto const cdPath_def =
diff --git a/tests/path_completion.cpp b/tests/path_completion.cpp
index 4b6b25b..bec663d 100644
--- a/tests/path_completion.cpp
+++ b/tests/path_completion.cpp
@@ -187,6 +187,16 @@
         }
     }
 
+    SECTION("get completion")
+    {
+        SECTION("get /example:ano/l")
+        {
+            input = "get /example:ano/l";
+            expectedCompletions = {"listInCont"};
+            expectedContextLength = 1;
+        }
+    }
+
     SECTION("list keys completion")
     {
         SECTION("cd example:lis")
