diff --git a/src/linkahead/common/models.py b/src/linkahead/common/models.py
index a7030d9523bab9ea26570acf45c3f067249f09e6..9644485a21ee26d393644497171062708bcb858d 100644
--- a/src/linkahead/common/models.py
+++ b/src/linkahead/common/models.py
@@ -3003,7 +3003,11 @@ class Container(list):
 
     def __getitem__(self, key):
         # Construct new Container from list slice
-        return Container().extend(super().__getitem__(key))
+        self_as_list_slice = super().__getitem__(key)
+        if isinstance(self_as_list_slice, list):
+            return Container().extend(self_as_list_slice)
+        else:
+            return self_as_list_slice
 
     @staticmethod
     def from_xml(xml_str):
diff --git a/unittests/test_container.py b/unittests/test_container.py
index 026f642461e221e0c2da558a661e8d4affc81a19..cfada7cc2d2fd21e8bbc4fb06c6e32e9346d87f8 100644
--- a/unittests/test_container.py
+++ b/unittests/test_container.py
@@ -187,4 +187,8 @@ def test_container_slicing():
     container_slice = cont[:2]
     assert isinstance(container_slice, db.common.models.Container), \
         f"Container slice should be Container, was {type(container_slice)}"
-    # cont[:2].retrieve()
+    for element in container_slice:
+        assert isinstance(element, db.Record), \
+            f"element in slice was not Record, but {type(element)}"
+    assert len(container_slice) == 2
+    assert cont[-1].name == "TestRec5"