X-code extends parity coding for correcting single disk failures in RAID 5 to two disks. Similar to RAID 6 X-code uses the minimum level of redundancy by dedicating the capacity of two out of N disks to check disks, but unlike RAID 6 it solely relies on parity codes, which are placed horizontally rather than vertically. The parity groups in X-code are defined as diagonals with positive and negative slopes. This study is mainly concerned with X-code arrays with two disk failures, since it requires a multistep recovery process, while its operation is otherwise similar to RAID 6. We use examples to gain insight into the cost of recovery and to develop an algorithm to estimate recovery cost for reconstructing two failed disks. We observe that disk loads are unbalanced and the overall load increase depends on the separation of the failed disks. Cyclically shifting or randomly permuting successive N×N arrays of blocks may be used to reduce the load increase to the mean across all of the possible (N-1)/2 distances of the failed disks. We also present an improvement in recovery cost for single disk failures.