diff --git a/alib2std/src/extensions/vector.hpp b/alib2std/src/extensions/vector.hpp
index 04ea3364be625229c2201d2b3c6f07c5dc5c9df8..4758ca9b96172942ddd64089fe8d3fff9bd01d87 100644
--- a/alib2std/src/extensions/vector.hpp
+++ b/alib2std/src/extensions/vector.hpp
@@ -134,8 +134,10 @@ ext::vector < bool, Ts ... > & operator ^= ( ext::vector < bool, Ts ... > & A, c
 	while ( itB < B.end ( ) ) // A is longer or of the same size as B
 		* ( itA._M_p ++ ) ^= * ( itB._M_p ++ ); // word-at-a-time bitwise operation
 
-	while ( itA < A.end ( ) ) // The rest of A above the size of B shall be flipped
-		* ( itA._M_p ++ ) = ~ * ( itA._M_p );
+	while ( itA < A.end ( ) ) { // The rest of A above the size of B shall be flipped
+		* ( itA._M_p ) = ~ * ( itA._M_p );
+		itA._M_p ++;
+	}
 
 	return A;
 }