diff --git a/src/libslic3r/SLA/SLASupportTree.cpp b/src/libslic3r/SLA/SLASupportTree.cpp
index ff1547e27..1cd9ffdcc 100644
--- a/src/libslic3r/SLA/SLASupportTree.cpp
+++ b/src/libslic3r/SLA/SLASupportTree.cpp
@@ -1536,7 +1536,7 @@ public:
             // collision check
             auto hit = bridge_mesh_intersect(headjp, n, r);
 
-            if(std::isinf(hit)) ground_head_indices.emplace_back(i);
+            if(std::isinf(hit.distance())) ground_head_indices.emplace_back(i);
             else {
                 if(m_cfg.ground_facing_only) head.invalidate();
                 m_iheads_onmodel.emplace_back(std::make_pair(i, hit));
@@ -1980,6 +1980,8 @@ bool SLASupportTree::generate(const std::vector<SupportPoint> &support_points,
                               const SupportConfig &cfg,
                               const Controller &ctl)
 {
+    if(support_points.empty()) return false;
+
     Algorithm alg(cfg, mesh, support_points, *m_impl, ctl.cancelfn);
 
     // Let's define the individual steps of the processing. We can experiment