diff --git a/km3io/tools.py b/km3io/tools.py
index 5448d61bf092407e186c5dccb0184b0a8c499ae9..642e37082a3cb5cc9899c009efdb7b38f17e4ad2 100644
--- a/km3io/tools.py
+++ b/km3io/tools.py
@@ -159,6 +159,9 @@ class Branch:
         if isinstance(item, str):
             return self.__getkey__(item)
 
+        if item.__class__.__name__ == "ChunkedArray":
+            item = np.array(item)
+
         return self.__class__(self._tree,
                               self._mapper,
                               index_chain=self._index_chain + [item],
diff --git a/tests/test_offline.py b/tests/test_offline.py
index 2f7bb02d87f0f154ffd58aff042c40370b708492..14cd3926f65d0506ce39f2314927c5c390a9474e 100644
--- a/tests/test_offline.py
+++ b/tests/test_offline.py
@@ -196,6 +196,14 @@ class TestOfflineEvents(unittest.TestCase):
         assert np.allclose(self.events.hits[3:5][1][4].dom_id,
                            self.events[3:5][1][4].hits.dom_id)
 
+    def test_fancy_indexing(self):
+        mask = self.events.n_tracks > 55
+        tracks = self.events.tracks[mask]
+        first_tracks = tracks[:, 0]
+        assert 8 == len(first_tracks)
+        assert 8 == len(first_tracks.rec_stages)
+        assert 8 == len(first_tracks.lik)
+
     def test_iteration(self):
         i = 0
         for event in self.events: