diff --git a/adaptive/learner/learner1D.py b/adaptive/learner/learner1D.py
index f571b33f7f9ac78024ebc08d8654039f8764c10c..d53b15bb73fab6182cc8c7cdeebf805042d0f30f 100644
--- a/adaptive/learner/learner1D.py
+++ b/adaptive/learner/learner1D.py
@@ -74,9 +74,10 @@ def triangle_loss(interval, scale, data, neighbors):
     x_left, x_right = interval
     xs = [x_left, x_right]
     if x_left in neighbors:
-        xs.insert(0, neighbors[x_left][1])
+        xs.insert(0, neighbors[x_left][0])
     if x_right in neighbors:
-        xs.append(neighbors[x_right][0])
+        xs.append(neighbors[x_right][1])
+    xs = [x for x in xs if x is not None]
 
     if len(xs) <= 2:
         return (x_right - x_left) / scale[0]