Method for allocating resource blocks on a cellular network, the cellular network comprising a plurality of transceiver stations each one configured to provide radio coverage over a corresponding cell for allowing user equipments within the cell to exchange in uplink or downlink data flows, the method comprising at a cell reiterating the following sequence of operations at some or at each transmission time interval or group of transmission time intervals: a) listing user equipments requiring resource blocks in a corresponding priority list according to a first ordered sequence, said first ordered sequence being based on a priority of each user equipment in being served; b) following the first ordered sequence, for each user equipment listed in the priority list, carrying out the following operations: b1) selecting a corresponding first set of resource blocks comprising at least one resource block; b2) checking if the selected first set of resource blocks has not been already assigned to another user equipment, and in the affirmative case assigning to said user equipment the selected first set of resource blocks for serving said user equipment, otherwise, if the selected first set of resource blocks has been already assigned to another user equipment, removing said user equipment from the priority list and inserting said user equipment in a collision list different from the priority list; wherein said sequence of operations further comprises: - before carrying out operation b), checking if the collision list is not empty and, in the affirmative case, assigning (220, 226, 228) second sets of resource blocks to user equipments listed in the collision list, for serving the user equipments listed in the collision list. a) listing user equipments requiring resource blocks in a corresponding priority list according to a first ordered sequence, said first ordered sequence being based on a priority of each user equipment in being served; b) following the first ordered sequence, for each user equipment listed in the priority list, carrying out the following operations: b1) selecting a corresponding first set of resource blocks comprising at least one resource block; b2) checking if the selected first set of resource blocks has not been already assigned to another user equipment, and in the affirmative case assigning to said user equipment the selected first set of resource blocks for serving said user equipment, otherwise, if the selected first set of resource blocks has been already assigned to another user equipment, removing said user equipment from the priority list and inserting said user equipment in a collision list different from the priority list; b1) selecting a corresponding first set of resource blocks comprising at least one resource block; b2) checking if the selected first set of resource blocks has not been already assigned to another user equipment, and in the affirmative case assigning to said user equipment the selected first set of resource blocks for serving said user equipment, otherwise, - before carrying out operation b), checking if the collision list is not empty and, in the affirmative case, assigning (220, 226, 228) second sets of resource blocks to user equipments listed in the collision list, for serving the user equipments listed in the collision list.