diff --git a/dune/fufem/functions/alienelementlocalbasisfunction.hh b/dune/fufem/functions/alienelementlocalbasisfunction.hh
index 97d73bb98255335a638ac8a1c638e58fe1da2eab..88e3b2e33d586177cf03207435376c04e74ff877 100644
--- a/dune/fufem/functions/alienelementlocalbasisfunction.hh
+++ b/dune/fufem/functions/alienelementlocalbasisfunction.hh
@@ -70,8 +70,7 @@ class AlienElementLocalBasisFunction :
          */
         void evaluateAll(const DomainType& x, std::vector<RangeType>& yy) const
         {
-            const Dune::ReferenceElement<double, Entity::dimension>& alienRefElement
-                = Dune::ReferenceElements<double, Entity::dimension>::general(alienEntity_.type());
+            const auto& alienRefElement = Dune::ReferenceElements<double, Entity::dimension>::general(alienEntity_.type());
 
             const DomainType globalPosition = entity_.geometry().global(x);
             const DomainType alienLocalPosition = alienEntity_.geometry().local(globalPosition);
diff --git a/dune/fufem/functionspacebases/p3nodalbasis.hh b/dune/fufem/functionspacebases/p3nodalbasis.hh
index 8a1fc72d5a1d314b4183f67d38b508cd49b0b9c9..c8bd900519121ee7c9d0b1565b0912bb7d19af8f 100644
--- a/dune/fufem/functionspacebases/p3nodalbasis.hh
+++ b/dune/fufem/functionspacebases/p3nodalbasis.hh
@@ -140,8 +140,7 @@ class P3NodalBasis :
                     return edgeOffset_ + 2*indexSet.subIndex(e,0,0) + localKey.index();
                 else {
 
-                    const Dune::ReferenceElement<double,dim>& refElement
-                        = Dune::ReferenceElements<double,dim>::general(e.type());
+                    const auto& refElement = Dune::ReferenceElements<double,dim>::general(e.type());
 
                     // we have to reverse the numbering if the local triangle edge is
                     // not aligned with the global edge
@@ -169,8 +168,7 @@ class P3NodalBasis :
                     else
                         DUNE_THROW(Dune::NotImplemented, "2d elements have to be triangles or quadrilaterals");
                 } else {
-                    const Dune::ReferenceElement<double,dim>& refElement
-                        = Dune::ReferenceElements<double,dim>::general(e.type());
+                    const auto& refElement = Dune::ReferenceElements<double,dim>::general(e.type());
 
                     assert(refElement.type(localKey.subEntity(), localKey.codim()).isTriangle());
                     return triangleOffset_ + indexSet.subIndex(e,localKey.subEntity(),localKey.codim());
diff --git a/dune/fufem/test/subgridxyfunctionalassemblertest.cc b/dune/fufem/test/subgridxyfunctionalassemblertest.cc
index 16fa688989089f6ab4a001ff3eb9dd9ce12482ab..cdea3a32cb0f9dadd8ac49ec71c7624bf9873541 100644
--- a/dune/fufem/test/subgridxyfunctionalassemblertest.cc
+++ b/dune/fufem/test/subgridxyfunctionalassemblertest.cc
@@ -102,7 +102,7 @@ void setupSubgridToHostgridTransfer(TransferOperatorType& matrix, const SubGridB
                 const FLFE& fineFE = hostgridbasis.getLocalFiniteElement(*fIt);
 
                 // we need the reference element to get the local position of the subentities corresponding to fine basis functions
-                const Dune::ReferenceElement<double,dim>& fineRefElement = Dune::ReferenceElements<double, dim>::general(fIt->type());
+                const auto& fineRefElement = Dune::ReferenceElements<double, dim>::general(fIt->type());
 
                 // loop over all child nodes
                 for (size_t j=0; j<fineFE.localBasis().size(); ++j)