diff --git a/demo/src/ellipt.cc b/demo/src/ellipt.cc
index d924ab4c65bb3db5a5a762e76c47172ce4992c13..6989f42108cecb2523e1c4468e4fd12fa86eba04 100644
--- a/demo/src/ellipt.cc
+++ b/demo/src/ellipt.cc
@@ -24,6 +24,8 @@ class F : public AbstractFunction<double, WorldVector<double> >
 {
 public:
 
+  F(int degree) : AbstractFunction<double, WorldVector<double> >(degree) {}
+
   /// Implementation of AbstractFunction::operator().
   double operator()(const WorldVector<double>& x) const 
   {
@@ -69,8 +71,9 @@ int main(int argc, char* argv[])
   ellipt.addMatrixOperator(&matrixOperator);
 
   // ===== create rhs operator =====
+  int degree = ellipt.getFESpace()->getBasisFcts()->getDegree();
   Operator rhsOperator(Operator::VECTOR_OPERATOR, ellipt.getFESpace());
-  rhsOperator.addZeroOrderTerm(new CoordsAtQP_ZOT(new F()));
+  rhsOperator.addZeroOrderTerm(new CoordsAtQP_ZOT(new F(degree)));
   ellipt.addVectorOperator(&rhsOperator);
 
   // ===== start adaption loop =====