An instruction 
processing pipeline 6 is provided. This has error detection and error 
recovery circuitry 20 associated with one or more of the pipeline stages. If an error is detected within a 
signal value within that pipeline stage, then it can be repaired. Part of the error 
recovery may be to flush upstream program instructions from the 
instruction pipeline 6. When multi-threading, only those instructions from a thread including an instruction which has been lost as a consequence of the error 
recovery need to be flushed from the 
instruction pipeline 6. Instruction can also be selected for flushing in dependence upon characteristics such as privileged level, number of dependent instructions etc. The 
instruction pipeline may additionally / alternatively be provided with more than one main storage element 26, 28 associated with each 
signal value with these main storage elements 26, 28 being used in an alternating fashion such that if a 
signal value has been erroneously captured and needs to be repaired, there is still available a main storage element 26, 28 to properly capture the signal value corresponding to the following 
program instruction. In this way flushes can be avoided.