diff --git a/pystencils/backends/cbackend.py b/pystencils/backends/cbackend.py
index 92a6080c73389a815163157efefac2186aeee09e..18fd1d344b750b61bd24b1ddfc45199da14848f2 100644
--- a/pystencils/backends/cbackend.py
+++ b/pystencils/backends/cbackend.py
@@ -263,6 +263,9 @@ class CustomSympyPrinter(CCodePrinter):
         result = super(CustomSympyPrinter, self)._print_Piecewise(expr)
         return result.replace("\n", "")
 
+    def _print_NoEvaluationPiecewise(self, expr):
+        return self._print_Piecewise(expr)
+
     def _print_Function(self, expr):
         infix_functions = {
             bitwise_xor: '^',
diff --git a/pystencils/sympyextensions.py b/pystencils/sympyextensions.py
index 86614a21224d5891e8890868771c6d9dc693f9c0..db5a6792eff11ff00abbd02a2309966d237fc359 100644
--- a/pystencils/sympyextensions.py
+++ b/pystencils/sympyextensions.py
@@ -580,3 +580,10 @@ def sort_assignments_topologically(assignments: Sequence[Assignment]) -> List[As
 class SymbolCreator:
     def __getattribute__(self, name):
         return sp.Symbol(name)
+
+
+class NoEvaluationPiecewise(sp.Piecewise):
+    def __new__(cls, *args, **kwargs):
+        kwargs['evaluate'] = False
+        obj = super(NoEvaluationPiecewise, cls).__new__(cls, *args, **kwargs)
+        return obj