diff --git a/src/union.cpp b/src/union.cpp
index 0061093ca5170c1501e1264022fb4d4b7be418c3..02be755a79fbbe9d4e3692efb78cd1771a5f6b26 100644
--- a/src/union.cpp
+++ b/src/union.cpp
@@ -28,9 +28,7 @@ std::vector<Point> getPointsOnSide(const Edge &e, const std::vector<Point> intr,
 
 std::vector<Triangle> unionizeTopAndBottom(const Triangle &top, const Triangle &bottom)
 {
-    if (intersections(top, bottom).empty()) {
-        return {};
-    }
+    
     std::vector<Triangle> result;
     TriangleEdges topEdges = TriangleEdges(top);
     TriangleEdges botEdges = TriangleEdges(bottom);
@@ -62,6 +60,9 @@ std::vector<Triangle> unionizeTopAndBottom(const Triangle &top, const Triangle &
 
 std::vector<Triangle> unionize(const Triangle &t1, const Triangle &t2)
 {
+    if (intersections(t1, t2).empty()) {
+        return {t1, t2};
+    }
     if (t1.depth < t2.depth)
     {
         return unionizeTopAndBottom(t1, t2);