diff --git a/src/taggingbackends/data/labels.py b/src/taggingbackends/data/labels.py
index d6e632a3508c5f2157ad28642b62fb76eb314be2..b8f63be9ba56107440c27d51d26d3d17b7018bd2 100644
--- a/src/taggingbackends/data/labels.py
+++ b/src/taggingbackends/data/labels.py
@@ -18,6 +18,11 @@ class Labels:
     @property
     def tracking(self):
         if not all([isinstance(dep, dict) for dep in self._tracking]):
+            if 1 < len(self._tracking):
+                # if any labels file is found, assume the other files are its
+                # data dependencies, and exclude the labels file
+                self._tracking = [dep for dep in self._tracking
+                        if not dep.name.endswith(".labels")]
             self._tracking = [{"filename": dep.name, "sha1": self._checksum(dep)} \
                     for dep in self._tracking]
         return self._tracking
diff --git a/src/taggingbackends/features/skeleton.py b/src/taggingbackends/features/skeleton.py
index e1421c8fca8cfb6f1ae36a5dc9dbf9cb2da8342e..d52f458910605b3d919fa3128149f6c331bb41f2 100644
--- a/src/taggingbackends/features/skeleton.py
+++ b/src/taggingbackends/features/skeleton.py
@@ -8,7 +8,7 @@ def get_5point_spines(spine):
     arrays.
     """
     if isinstance(spine, list):
-        return [get_5point_spines(s) for s in spine]
+        return np.vstack([get_5point_spines(s) for s in spine])
     elif spine.shape[1] == 22:
         return np.hstack([spine[:,0:2], (spine[:,4:6]+spine[:,6:8])/2,
             spine[:,10:12], (spine[:,14:16]+spine[:,16:18])/2, spine[:,20:22]])