diff --git a/dune/xt/common/bindings.cc b/dune/xt/common/bindings.cc
index f974564628fbcce809f45d5b832c4a3ae698f189..eb10bdfdfebeb1e688cbdc744d40e405c51e983b 100644
--- a/dune/xt/common/bindings.cc
+++ b/dune/xt/common/bindings.cc
@@ -18,6 +18,10 @@
 
 #include <dune/common/parallel/mpihelper.hh>
 
+#if HAVE_DUNE_FEM
+#include <dune/fem/misc/mpimanager.hh>
+#endif
+
 #include <dune/pybindxi/pybind11.h>
 #include <dune/pybindxi/stl.h>
 
@@ -43,7 +47,11 @@ PYBIND11_PLUGIN(_common)
         [](const std::vector<std::string>& args) {
           int argc = boost::numeric_cast<int>(args.size());
           char** argv = Dune::XT::Common::vector_to_main_args(args);
+#if HAVE_DUNE_FEM
+          Dune::Fem::MPIManager::initialize(argc, argv);
+#else
           Dune::MPIHelper::instance(argc, argv);
+#endif
         },
         "args"_a = std::vector<std::string>());