diff --git a/src/libslic3r/Print.hpp b/src/libslic3r/Print.hpp
index 4f9f9ad1e..a23922426 100644
--- a/src/libslic3r/Print.hpp
+++ b/src/libslic3r/Print.hpp
@@ -150,15 +150,15 @@ public:
     Layer* 			get_layer(int idx) 		 { return m_layers[idx]; }
     // Get a layer exactly at print_z.
     const Layer*	get_layer_at_printz(coordf_t print_z) const {
-    	auto it = Slic3r::lower_bound_by_predicate(m_layers.begin(), m_layers.end(), [print_z](const Layer *layer) { return layer->print_z < print_z; });
+        auto it = Slic3r::lower_bound_by_predicate(m_layers.begin(), m_layers.end(), [print_z](const Layer *layer) { return layer->print_z < print_z; });
 		return (it == m_layers.end() || (*it)->print_z != print_z) ? nullptr : *it;
 	}
     Layer*			get_layer_at_printz(coordf_t print_z) { return const_cast<Layer*>(std::as_const(*this).get_layer_at_printz(print_z)); }
     // Get a layer approximately at print_z.
     const Layer*	get_layer_at_printz(coordf_t print_z, coordf_t epsilon) const {
-        coordf_t limit = print_z + epsilon;
-    	auto it = Slic3r::lower_bound_by_predicate(m_layers.begin(), m_layers.end(), [limit](const Layer *layer) { return layer->print_z < limit; });
-		return (it == m_layers.end() || (*it)->print_z < print_z - epsilon) ? nullptr : *it;
+        coordf_t limit = print_z - epsilon;
+        auto it = Slic3r::lower_bound_by_predicate(m_layers.begin(), m_layers.end(), [limit](const Layer *layer) { return layer->print_z < limit; });
+        return (it == m_layers.end() || (*it)->print_z > print_z + epsilon) ? nullptr : *it;
 	}
     Layer*			get_layer_at_printz(coordf_t print_z, coordf_t epsilon) { return const_cast<Layer*>(std::as_const(*this).get_layer_at_printz(print_z, epsilon)); }