diff --git a/lib/Slic3r/Geometry.pm b/lib/Slic3r/Geometry.pm
index 3c884e934..7b66d40e9 100644
--- a/lib/Slic3r/Geometry.pm
+++ b/lib/Slic3r/Geometry.pm
@@ -242,6 +242,7 @@ sub polygon_lines {
 sub nearest_point {
     my ($point, $points) = @_;
     my $index = nearest_point_index(@_);
+    return undef if !defined $index;
     return $points->[$index];
 }
 
diff --git a/lib/Slic3r/Print.pm b/lib/Slic3r/Print.pm
index 8accf1dd9..e81243f45 100644
--- a/lib/Slic3r/Print.pm
+++ b/lib/Slic3r/Print.pm
@@ -462,7 +462,8 @@ EOF
             foreach my $expolygon (@unsupported_slices) {
                 # look for the nearest point to this island among all
                 # supported points
-                my $support_point = nearest_point($expolygon->contour->[0], \@supported_points);
+                my $support_point = nearest_point($expolygon->contour->[0], \@supported_points)
+                    or next;
                 my $anchor_point = nearest_point($support_point, $expolygon->contour->[0]);
                 printf $fh qq{    <line x1="%s" y1="%s" x2="%s" y2="%s" style="stroke-width: 2; stroke: white" />\n},
                     map @$_, $support_point, $anchor_point;