diff --git a/Sudoku/SudokuEvent.mch b/Sudoku/SudokuEvent.mch
index 74dad17e30a3335cfe684995fbbce9b14a2b7e65..a582d652527b115b07c2abd6a897d031c1b737c0 100644
--- a/Sudoku/SudokuEvent.mch
+++ b/Sudoku/SudokuEvent.mch
@@ -84,10 +84,10 @@ OPERATIONS
   SetCurPos(x,y) = PRE x:DOM & y:DOM THEN
      curx, cury := x,y  // change current position
   END;
-  SetBoard(val) = PRE val:RAN THEN
+  SetBoard(val) = PRE val:RAN & cury /: dom(PuzzleBoard(curx)) THEN
      Board(curx)(cury) := val  // Set the Value at the current position
   END;
-  ClearCurPos = BEGIN
+  ClearCurPos = PRE cury /: dom(PuzzleBoard(curx)) THEN
      Board(curx) := {cury} <<| Board(curx)  // clear the value at the current position
   END;
   res <-- GetPossibleVals = BEGIN