A method of reading data from a dispersed data network, said method operating on at least one computer (202; 220; 302) and comprising the steps of: receiving a request for a block of data at an interface operating on said computer (202; 220; 302), the interface adapted to provide the requested block of data; assembling a list of slice servers (240; 250; 260), wherein each slice server (240; 250; 260) on the list can access at least one data slice associated with said requested block of data; issuing, to the first k slice servers on the assembled list, requests for data slices, wherein k is at least equal to m, "m" being the minimum number of data slices required to reconstruct the requested block of data; receiving m-r data slices from a plurality of slice servers (240; 250; 260) to which said requests were issued, wherein if r is not equal to 0, issuing further requests for data slices to slice servers (240; 250; 260) having at least one data slice associated with the requested block of data until m data slices are received; applying data transformation on the m received data slices; determining if the applied transformation was successful for all the m received data slices, wherein if the applied data transformation was not successful for some of the m received data slices, issuing further requests for data slices to slice servers (240; 250; 260) having at least one data slice associated with the requested block of data until for all the m received data slices the applied data transformation was successful; assembling the requested block of data with the m received data slices for which the applied data transformation was successful; and providing the block of data from the interface. receiving a request for a block of data at an interface operating on said computer (202; 220; 302), the interface adapted to provide the requested block of data; assembling a list of slice servers (240; 250; 260), wherein each slice server (240; 250; 260) on the list can access at least one data slice associated with said requested block of data; issuing, to the first k slice servers on the assembled list, requests for data slices, wherein k is at least equal to m, "m" being the minimum number of data slices required to reconstruct the requested block of data; receiving m-r data slices from a plurality of slice servers (240; 250; 260) to which said requests were issued, wherein if r is not equal to 0, issuing further requests for data slices to slice servers (240; 250; 260) having at least one data slice associated with the requested block of data until m data slices are received; applying data transformation on the m received data slices; determining if the applied transformation was successful for all the m received data slices, wherein if the applied data transformation was not successful for some of the m received data slices, issuing further requests for data slices to slice servers (240; 250; 260) having at least one data slice associated with the requested block of data until for all the m received data slices the applied data transformation was successful; assembling the requested block of data with the m received data slices for which the applied data transformation was successful; and