diff --git a/report/report.tex b/report/report.tex
index ebd10515178a7e1d76fa6f09bef6c8c25cbeb04b..b1bad2a0d8e7ad2a695f2f410109d19a6a0ff300 100644
--- a/report/report.tex
+++ b/report/report.tex
@@ -118,7 +118,21 @@ primary concern, this is not a big problem.
 
 \subsubsection*{Constant folding}
 
+Another optimization is to do constant folding. Constant folding is replacing
+a expensive step like addition with a more simple step like loading a constant.
+Of course, this is not always possible. It is possible in cases where you apply
+an operation on two constants, or a constant and a variable of which you know
+for sure that it always has a certain value at that point. For example:
+\begin{verbatim}
+li   $regA, 1               li $regA, 1
+addu $regB, $regA, 2    ->  li $regB, 3
+\end{verbatim}
+Of course, if \texttt{\$regA} is not used after this, it can be removed, which
+will be done by the dead code elimination.
 
+One problem we encountered with this is that the use of a \texttt{li} is that
+the program often also stores this in the memory, so we had to check whether
+this was necessary here as well.
 
 \subsubsection*{Copy propagation}
 
@@ -145,12 +159,11 @@ of the move operation.
 
 An example would be the following:
 \begin{verbatim}
-move $regA, $regB           move $regA, $regB
-...                         ...
-Code not writing $regA, ->  ...
-$regB                       ...
-...                         ...
-addu $regC, $regA, ...      addu $regC, $regB, ...
+move $regA, $regB                   move $regA, $regB
+...                                 ...
+Code not writing $regA, $regB   ->  ...
+...                                 ...
+addu $regC, $regA, ...              addu $regC, $regB, ...
 \end{verbatim}
 This code shows that \texttt{\$regA} is replaced with \texttt{\$regB}. This
 way, the move instruction might have become useless, and it will then be
diff --git a/src/optimize/advanced.py b/src/optimize/advanced.py
index 7e3a297cf8f41e6591a61b9def43522d027c4548..a182e5f81cb0980498918cc1a744f252e74137e5 100644
--- a/src/optimize/advanced.py
+++ b/src/optimize/advanced.py
@@ -137,7 +137,7 @@ def fold_constants(block):
 
             if reg_from in register:
                 # Other value is also known, copy its value
-                register[reg_to] = register[reg_to]
+                register[reg_to] = register[reg_from]
             else:
                 # Other value is unknown, delete the value
                 del register[reg_to]