diff --git a/doc/src/sgml/plpgsql.sgml b/doc/src/sgml/plpgsql.sgml
new file mode 100644
index ba2c57b..4840f6e
*** a/doc/src/sgml/plpgsql.sgml
--- b/doc/src/sgml/plpgsql.sgml
*************** BEGIN
*** 5115,5121 ****
          ELSE
              RETURN pos + beg_index - 1;
          END IF;
!     ELSE
          ss_length := char_length(string_to_search);
          length := char_length(string);
          beg := length + beg_index - ss_length + 2;
--- 5115,5121 ----
          ELSE
              RETURN pos + beg_index - 1;
          END IF;
!     ELSIF beg_index &lt; 0 THEN
          ss_length := char_length(string_to_search);
          length := char_length(string);
          beg := length + beg_index - ss_length + 2;
*************** BEGIN
*** 5132,5137 ****
--- 5132,5139 ----
          END LOOP;
  
          RETURN 0;
+     ELSE
+         RETURN 0;
      END IF;
  END;
  $$ LANGUAGE plpgsql STRICT IMMUTABLE;
*************** BEGIN
*** 5170,5176 ****
          ELSE
              RETURN beg;
          END IF;
!     ELSE
          ss_length := char_length(string_to_search);
          length := char_length(string);
          beg := length + beg_index - ss_length + 2;
--- 5172,5178 ----
          ELSE
              RETURN beg;
          END IF;
!     ELSIF beg_index &lt; 0 THEN
          ss_length := char_length(string_to_search);
          length := char_length(string);
          beg := length + beg_index - ss_length + 2;
*************** BEGIN
*** 5191,5196 ****
--- 5193,5200 ----
          END LOOP;
  
          RETURN 0;
+     ELSE
+         RETURN 0;
      END IF;
  END;
  $$ LANGUAGE plpgsql STRICT IMMUTABLE;
