dbms_repair, I believe, will not *fix* "fractured blocks". The dbms_repair.fix_corrupt_blocks won't do its thing. All you might be able to do is skip them.
It won't fix it because it's a bug ??? The documenation seems to say that the block is fixable isth this package.


Since you use rman, you might want to try blockrecover too. Like it has already been suggested, your best bet is to ofcourse recreate the indexes. Can't go wrong with it..
i have thought about blockrecover - i'll consider it. i have mentioned over and again, that I do not have an object associated with the blocks, therefore, i cannot drop and recreate.

(I pressume these blocks are empty and on the freelist but will never be used because Oracle will detect and bypass):

select owner,substr(segment_name,1,30) segment_name,
segment_type,tablespace_name from dba_extents where file_id=5 and
(152564 between block_id and block_id + blocks - 1)

0 rows returned.