diff --git a/dune/common/fmatrix.hh b/dune/common/fmatrix.hh
index 14f8606b25298322e18e62ea04ac4d1a19d66c82..2498a15b639d67a6501e5da5e4d847fe386767ef 100644
--- a/dune/common/fmatrix.hh
+++ b/dune/common/fmatrix.hh
@@ -1096,77 +1096,77 @@ namespace Dune
     template<class X, class Y>
     void mv (const X& x, Y& y) const
     {
-      y.p = a[0] * x.p;
+      y[0] = a[0] * x[0];
     }
 
     //! y = A^T x
     template<class X, class Y>
     void mtv ( const X &x, Y &y ) const
     {
-      y.p = a[ 0 ] * x.p;
+      y[0] = a[ 0 ] * x[0];
     }
 
     //! y += A x
     template<class X, class Y>
     void umv (const X& x, Y& y) const
     {
-      y.p += a[0] * x.p;
+      y[0] += a[0] * x[0];
     }
 
     //! y += A^T x
     template<class X, class Y>
     void umtv (const X& x, Y& y) const
     {
-      y.p += a[0] * x.p;
+      y[0] += a[0] * x[0];
     }
 
     //! y += A^H x
     template<class X, class Y>
     void umhv (const X& x, Y& y) const
     {
-      y.p += conjugateComplex(a[0]) * x.p;
+      y[0] += conjugateComplex(a[0]) * x[0];
     }
 
     //! y -= A x
     template<class X, class Y>
     void mmv (const X& x, Y& y) const
     {
-      y.p -= a[0] * x.p;
+      y[0] -= a[0] * x[0];
     }
 
     //! y -= A^T x
     template<class X, class Y>
     void mmtv (const X& x, Y& y) const
     {
-      y.p -= a[0] * x.p;
+      y[0] -= a[0] * x[0];
     }
 
     //! y -= A^H x
     template<class X, class Y>
     void mmhv (const X& x, Y& y) const
     {
-      y.p -= conjugateComplex(a[0]) * x.p;
+      y[0] -= conjugateComplex(a[0]) * x[0];
     }
 
     //! y += alpha A x
     template<class X, class Y>
     void usmv (const K& alpha, const X& x, Y& y) const
     {
-      y.p += alpha * a[0] * x.p;
+      y[0] += alpha * a[0] * x[0];
     }
 
     //! y += alpha A^T x
     template<class X, class Y>
     void usmtv (const K& alpha, const X& x, Y& y) const
     {
-      y.p += alpha * a[0] * x.p;
+      y[0] += alpha * a[0] * x[0];
     }
 
     //! y += alpha A^H x
     template<class X, class Y>
     void usmhv (const K& alpha, const X& x, Y& y) const
     {
-      y.p += alpha * conjugateComplex(a[0]) * x.p;
+      y[0] += alpha * conjugateComplex(a[0]) * x[0];
     }
 
     //===== norms