--- a/libs/ffc-factory/interface.cpp
+++ b/libs/ffc-factory/interface.cpp
@@ -27,10 +27,9 @@
   void dofmap(py::module& m);
 }
 
-//PYBIND11_MODULE(ffc_factory, m)
-PYBIND11_PLUGIN(ffc_factory)
+PYBIND11_MODULE(ffc_factory, m)
 {
-  pybind11::module m("ffc_factory", "Factory for wrapping FFC JIT-compiled objects");
+  m.doc() = "Factory for wrapping FFC JIT-compiled objects";
 
   // Create finite_element submodule
   py::module finite_element = m.def_submodule("finite_element",
@@ -54,6 +53,4 @@
           ufc::dofmap * p = reinterpret_cast<ufc::dofmap *>(e);
           return std::shared_ptr<const ufc::dofmap>(p);
         });
-
-  return m.ptr();
 }
