diff --git a/input/chapter04/chapter04.xml b/input/chapter04/chapter04.xml
index c8d309d..aefb7aa 100644
--- a/input/chapter04/chapter04.xml
+++ b/input/chapter04/chapter04.xml
@@ -812,7 +812,7 @@ run next. All possible tasks are kept on a
run queue, which is simply a linked list of
processes which the kernel knows are in a "runnable" state (i.e. not
waiting on disk activity or otherwise asleep). The problem arises
-that to calculate the next process to run, every possible runnable
+when to calculate the next process to run, every possible runnable
process must have its goodness calculated and the one with the highest
goodness ``wins''. You can see that for more tasks, it will take
longer and longer to decide which processes will run next.
diff --git a/input/chapter06/chapter06.xml b/input/chapter06/chapter06.xml
index 45c3728..cc8f054 100644
--- a/input/chapter06/chapter06.xml
+++ b/input/chapter06/chapter06.xml
@@ -103,7 +103,7 @@
The first step of compiling a source file to an executable
file is converting the code from the high level, human
understandable language to assembly code. We
- know from previous chapters than assembly code works directly with
+ know from previous chapters that assembly code works directly with
the instructions and registers provided by the processor.
The compiler is the most complex step of process for a
number of reasons. Firstly, humans are very unpredictable and