diff --git a/src/nonlinearpoissonfem.hh b/src/nonlinearpoissonfem.hh
index f0bcb569f84ddb332499619394951f62f1a928eb..cc203f720fbdc4086fa8ee7bf7c84d1e928c105b 100644
--- a/src/nonlinearpoissonfem.hh
+++ b/src/nonlinearpoissonfem.hh
@@ -39,7 +39,7 @@ namespace PPS {
     // set to false
     public LocalOperatorDefaultFlags
   {
-    Param& param_; // parameter class
+    Param param_; // parameter class
     // The required quadrature order is determined by the polynomial degree of
     // the integrand.  This is normally automatically determined from the
     // order of the basis functions.  Except that this local operator
@@ -58,8 +58,8 @@ namespace PPS {
     enum { doLambdaBoundary = true };
     enum { doAlphaVolume = true };
 
-    NonlinearPoissonFEM (Param& param, int incrementorder=0)
-      : param_(param), incrementorder_(incrementorder)
+    NonlinearPoissonFEM (Param param, int incrementorder=0)
+      : param_(std::move(param)), incrementorder_(incrementorder)
     {}
 
     // getter for parameter object