diff --git a/nifty5/operators/linear_operator.py b/nifty5/operators/linear_operator.py
index 2ae510c8b9ce7480b853288c333c3b0f75529193..60bef67bc15e632e0752660cbc440c9950caacb9 100644
--- a/nifty5/operators/linear_operator.py
+++ b/nifty5/operators/linear_operator.py
@@ -259,5 +259,4 @@ class LinearOperator(Operator):
 
     def _check_input(self, x, mode):
         self._check_mode(mode)
-        if self._dom(mode) != x.domain:
-            raise ValueError("The operator's and field's domains don't match.")
+        self._check_domain_equality(self._dom(mode), x.domain)
diff --git a/nifty5/operators/mask_operator.py b/nifty5/operators/mask_operator.py
index abd9ed1115383a6fee8f47cf3f9f913e7b802569..936e1250a8e72c6727ecc948fb69893e1bae965b 100644
--- a/nifty5/operators/mask_operator.py
+++ b/nifty5/operators/mask_operator.py
@@ -32,6 +32,15 @@ from .linear_operator import LinearOperator
 # collect the unstructured Fields.
 class MaskOperator(LinearOperator):
     def __init__(self, mask):
+        """Implementation of a mask response
+
+        This operator takes a field, applies a mask and returns the values of
+        the field in a UnstructuredDomain. It can be used as response operator.
+
+        Parameters
+        ----------
+        mask : Field
+        """
         if not isinstance(mask, Field):
             raise TypeError
 
diff --git a/nifty5/operators/operator.py b/nifty5/operators/operator.py
index 28328c1aa8e8537a4cce065af8977e1f1010102f..aca4749110a75afd3e9a351e488397f039244ad0 100644
--- a/nifty5/operators/operator.py
+++ b/nifty5/operators/operator.py
@@ -23,6 +23,17 @@ class Operator(NiftyMetaBase()):
             The domain on which the Operator's output Field lives."""
         return self._target
 
+    @staticmethod
+    def _check_domain_equality(dom_op, dom_field):
+        if dom_op != dom_field:
+            s = "The operator's and field's domains don't match."
+            from ..domain_tuple import DomainTuple
+            from ..multi_domain import MultiDomain
+            if not isinstance(dom_op, [DomainTuple, MultiDomain]):
+                s += " Your operator's domain is neither a `DomainTuple`" \
+                     " nor a `MultiDomain`."
+            raise ValueError(s)
+
     def scale(self, factor):
         if factor == 1:
             return self
@@ -66,8 +77,7 @@ class Operator(NiftyMetaBase()):
     def _check_input(self, x):
         from ..linearization import Linearization
         d = x.target if isinstance(x, Linearization) else x.domain
-        if self._domain != d:
-            raise ValueError("The operator's and field's domains don't match.")
+        self._check_domain_equality(self._domain, d)
 
     def __call__(self, x):
         if isinstance(x, Operator):