• Ended up figuring it out myself. Changes are in red.

    WHILE  @counter <= @Max_srch_id

    BEGIN

      Select @cscd_srch_string = @cscd_srch_string+srch_val+Char(9)

       from ##srch_val

       JOIN srch_elmt_assoc on srch_val_id = srea_sche_id

       Where srch_val_id in (Select srch_val_id from ##Srch_val where srch_val IS NOT Null)

       AND srea_srch_id = @srch_id

     IF @cscd_srch_string = ''

                BREAK  

    Set @cscd_srch_string = LEFT(@cscd_srch_string,LEN(@cscd_srch_string)-1)--Get rid of the trailing tab

    --Print @srch_id

    exec @intRetVal = RHD_OMAP..rhd_search_source @srch_id, @cscd_srch_string

    IF (@intRetVal <> 1)

    BEGIN

    BREAK

    END

    SET @counter = @counter + 1

    SELECT @srch_id =   MIN(sa.srea_srch_id)

       From srch_elmt_assoc sa

       Join ##Srch_val s on sa.srea_sche_id = s.srch_val_id

       Join search sr on sa.srea_srch_id = sr.srch_id

       Where sa.srea_priority = 1

       and s.srch_val is not null

       and sa.srea_srch_id <> 6

       and sa.srea_srch_id > @srch_id

    Set @cscd_srch_string = ''

    END

    IF  (@intRetVal = 1)     --Placed error return outside of the loop.

    Print 'No Records found'