diff --git a/src/cosserat-continuum.cc b/src/cosserat-continuum.cc
index add2b8ea79c6b1a8ee1be560331bb9d4ca239138..6e1336705369c7c437b4a42b299015a9e9e5273e 100644
--- a/src/cosserat-continuum.cc
+++ b/src/cosserat-continuum.cc
@@ -10,6 +10,15 @@
 
 #include <dune/fufem/utilities/adolcnamespaceinjections.hh>
 
+#include <dune/common/typetraits.hh>
+namespace Dune {
+  template <>
+  struct IsNumber<adouble>
+  {
+    constexpr static bool value = true;
+  };
+}
+
 #include <dune/common/bitsetvector.hh>
 #include <dune/common/parametertree.hh>
 #include <dune/common/parametertreeparser.hh>
diff --git a/src/gradient-flow.cc b/src/gradient-flow.cc
index 3d49ced53f294554a93e8f5782f2ec2a72c491e2..aaef1da78d436bfba5d2730fe7654bce4933211b 100644
--- a/src/gradient-flow.cc
+++ b/src/gradient-flow.cc
@@ -7,6 +7,15 @@
 #include <adolc/adouble.h>
 #include <dune/fufem/utilities/adolcnamespaceinjections.hh>
 
+#include <dune/common/typetraits.hh>
+namespace Dune {
+  template <>
+  struct IsNumber<adouble>
+  {
+    constexpr static bool value = true;
+  };
+}
+
 #include <array>
 
 #include <dune/common/bitsetvector.hh>
diff --git a/src/mixed-cosserat-continuum.cc b/src/mixed-cosserat-continuum.cc
index 5702b0326df654ce4859cf3271e5aac3d75aab39..6682be6d98954c94cc0fdb471bdbe6b4649e5db0 100644
--- a/src/mixed-cosserat-continuum.cc
+++ b/src/mixed-cosserat-continuum.cc
@@ -10,6 +10,15 @@
 
 #include <dune/fufem/utilities/adolcnamespaceinjections.hh>
 
+
+#include <dune/common/typetraits.hh>
+namespace Dune {
+  template <>
+  struct IsNumber<adouble>
+  {
+    constexpr static bool value = true;
+  };
+}
 #include <array>
 
 #include <dune/common/bitsetvector.hh>
diff --git a/test/adolctest.cc b/test/adolctest.cc
index 603db78ffafb3bd102314070f213876e44419ac7..238e12b206dfb8fa22728f902586ff4057b27693 100644
--- a/test/adolctest.cc
+++ b/test/adolctest.cc
@@ -25,6 +25,17 @@ typedef double FDType;
 #include <adolc/taping.h>
 
 #include <dune/fufem/utilities/adolcnamespaceinjections.hh>
+
+#include <dune/common/typetraits.hh>
+// This specialization is needed (in particular) to make copying of FieldMatrices work.
+namespace Dune {
+  template <>
+  struct IsNumber<adouble>
+  {
+    constexpr static bool value = true;
+  };
+}
+
 #include <dune/common/fmatrix.hh>
 
 #include <dune/geometry/quadraturerules.hh>