diff --git a/src/Mesh.hh b/src/Mesh.hh
index 7af6043c78890c0324da9ea0bdef47293a6b0a06..bd8e9105f101d2f0b23b74b81a5b14ba0a1191b5 100644
--- a/src/Mesh.hh
+++ b/src/Mesh.hh
@@ -893,13 +893,21 @@ void expose_mesh(py::module& m, const char *_name) {
 		.def("valence", valence_fh)
 		.def("is_simple_link", &Mesh::is_simple_link)
 		.def("is_simply_connected", &Mesh::is_simply_connected)
-		.def("remove_edge", &Mesh::remove_edge)
-		.def("reinsert_edge", &Mesh::reinsert_edge)
 		.def("triangulate", triangulate_fh)
 		.def("triangulate", triangulate_void)
 		.def("split_edge", &Mesh::split_edge)
 		.def("split_edge_copy", &Mesh::split_edge_copy)
 
+		.def("remove_edge", [](Mesh& _self, OM::EdgeHandle _eh) {
+				if (!_self.has_edge_status()) _self.request_edge_status();
+				if (!_self.has_face_status()) _self.request_face_status();
+				return _self.remove_edge(_eh);
+			})
+		.def("reinsert_edge", [](Mesh& _self, OM::EdgeHandle _eh) {
+				if (!_self.has_edge_status()) _self.request_edge_status();
+				if (!_self.has_face_status()) _self.request_face_status();
+				_self.reinsert_edge(_eh);
+			})
 		.def("is_collapse_ok", [](Mesh& _self, OM::HalfedgeHandle _heh) {
 				if (!_self.has_vertex_status()) _self.request_vertex_status();
 				if (!_self.has_halfedge_status()) _self.request_halfedge_status();