diff --git a/pystencils/backends/cbackend.py b/pystencils/backends/cbackend.py
index 271bf23226fd6b5abf29bd22d8d0013d7918d22a..94f21c076b1069ed041ea9975fcaea80b080afcd 100644
--- a/pystencils/backends/cbackend.py
+++ b/pystencils/backends/cbackend.py
@@ -192,9 +192,7 @@ class CBackend:
     def __init__(self, sympy_printer=None, signature_only=False, vector_instruction_set=None, dialect='c'):
         if sympy_printer is None:
             if vector_instruction_set is not None:
-                self.vector_sympy_printer = VectorizedCustomSympyPrinter(vector_instruction_set)
-                self.scalar_sympy_printer = CustomSympyPrinter()
-                self.sympy_printer = self.vector_sympy_printer
+                self.sympy_printer = VectorizedCustomSympyPrinter(vector_instruction_set)
             else:
                 self.sympy_printer = CustomSympyPrinter()
         else:
@@ -261,12 +259,6 @@ class CBackend:
         prefix = "\n".join(node.prefix_lines)
         if prefix:
             prefix += "\n"
-        if self._vector_instruction_set and hasattr(node, 'instruction_set') and node.instruction_set is None:
-            # the tail loop must not be vectorized
-            self.sympy_printer = self.scalar_sympy_printer
-            code = f"{prefix}{loop_str}\n{self._print(node.body)}"
-            self.sympy_printer = self.vector_sympy_printer
-            return code
         return f"{prefix}{loop_str}\n{self._print(node.body)}"
 
     def _print_SympyAssignment(self, node):
diff --git a/pystencils/cpu/vectorization.py b/pystencils/cpu/vectorization.py
index b54b78d8583ff86ff256652a2eade14a2e285189..533caa8b03222cb2adfb9233b9bec107cd305b63 100644
--- a/pystencils/cpu/vectorization.py
+++ b/pystencils/cpu/vectorization.py
@@ -154,8 +154,6 @@ def vectorize_inner_loops_and_adapt_load_stores(ast_node, vector_width, assume_a
             cutting_point = modulo_floor(loop_range, vector_width) + loop_node.start
             loop_nodes = [l for l in cut_loop(loop_node, [cutting_point]).args if isinstance(l, ast.LoopOverCoordinate)]
             assert len(loop_nodes) in (0, 1, 2)  # 2 for main and tail loop, 1 if loop range divisible by vector width
-            if len(loop_nodes) == 2:
-                loop_nodes[1].instruction_set = None
             if len(loop_nodes) == 0:
                 continue
             loop_node = loop_nodes[0]
@@ -314,9 +312,6 @@ def insert_vector_casts(ast_node):
             return expr
 
     def visit_node(node, substitution_dict):
-        if hasattr(node, 'instruction_set') and node.instruction_set is None:
-            # the tail loop must not be vectorized
-            return
         substitution_dict = substitution_dict.copy()
         for arg in node.args:
             if isinstance(arg, ast.SympyAssignment):