diff --git a/src/main/java/it/inaf/oats/vospace/ListNodeController.java b/src/main/java/it/inaf/oats/vospace/ListNodeController.java
index 7dd303f42c02a101c3334d6bf8604c8798434326..9f53335769c76d657e598cb10b7adeff09f81f84 100644
--- a/src/main/java/it/inaf/oats/vospace/ListNodeController.java
+++ b/src/main/java/it/inaf/oats/vospace/ListNodeController.java
@@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.http.ResponseEntity;
 
 import net.ivoa.xml.vospace.v2.Node;
+import net.ivoa.xml.vospace.v2.ContainerNode;
 
 import it.inaf.oats.vospace.persistence.NodeDAO;
 import javax.servlet.http.HttpServletRequest;
@@ -17,6 +18,8 @@ import it.inaf.ia2.aa.data.User;
 import it.inaf.oats.vospace.datamodel.NodeUtils;
 import java.util.Optional;
 import it.inaf.oats.vospace.exception.PermissionDeniedException;
+import java.util.stream.Collectors;
+import java.util.List;
 
 @RestController
 public class ListNodeController extends BaseNodeController {
@@ -42,7 +45,22 @@ public class ListNodeController extends BaseNodeController {
                 throw new PermissionDeniedException(path);
             }
         }
+        
+        Node node = optNode.get();
+
+        if (node instanceof ContainerNode) {
+            ContainerNode cnd = (ContainerNode) node;
+            List<Node> children
+                    = cnd.getNodes().stream().filter(
+                            (n) -> NodeUtils.checkIfReadable(
+                                    n, principal.getName(),
+                                    principal.getGroups()))
+                            .collect(Collectors.toList());
+            cnd.setNodes(children);
+            optNode = Optional.of(cnd);
+        }
 
         return ResponseEntity.ok(optNode.get());
+
     }
 }
diff --git a/src/test/java/it/inaf/oats/vospace/ListNodeControllerTest.java b/src/test/java/it/inaf/oats/vospace/ListNodeControllerTest.java
index 54dc45ea3f58ee9bf07be55c6b92c8f53974c8c0..18b4a6027bf634e96f2a742c2ea9cabae6167dff 100644
--- a/src/test/java/it/inaf/oats/vospace/ListNodeControllerTest.java
+++ b/src/test/java/it/inaf/oats/vospace/ListNodeControllerTest.java
@@ -111,7 +111,7 @@ public class ListNodeControllerTest {
                 .andExpect(status().is2xxSuccessful());       
     }
     
-    //@Test
+    @Test
     public void testListOnlyReadableChildren() throws Exception {
 
         ContainerNode node = new ContainerNode();