diff --git a/runtime/syntax/plsql.vim b/runtime/syntax/plsql.vim
index 7b36c0a..21681d5 100644
--- a/runtime/syntax/plsql.vim
+++ b/runtime/syntax/plsql.vim
@@ -4,12 +4,13 @@
 " Previous Maintainer: Jeff Lanzarotta (jefflanzarotta at yahoo dot com)
 " Previous Maintainer: C. Laurence Gonsalves (clgonsal@kami.com)
 " URL: https://github.com/lee-lindley/vim_plsql_syntax
-" Last Change: April 28, 2022   
+" Last Change: Aug 21, 2022   
 " History  Lee Lindley (lee dot lindley at gmail dot com)
+"               use get with default 0 instead of exists per Bram suggestion
+"               make procedure folding optional
 "               updated to 19c keywords. refined quoting. 
 "               separated reserved, non-reserved keywords and functions
-"               revised folding, giving up on procedure folding due to issue
-"               with multiple ways to enter <begin>.
+"               revised folding
 "          Eugene Lysyonok (lysyonok at inbox ru)
 "               Added folding.
 "          Geoff Evans & Bill Pribyl (bill at plnet dot org)
@@ -23,12 +24,19 @@
 " To enable folding (It does setlocal foldmethod=syntax)
 " let plsql_fold = 1
 "
+" To disable folding procedure/functions (recommended if you habitually
+"  do not put the method name on the END statement)
+" let plsql_disable_procedure_fold = 1
+"
 "     From my vimrc file -- turn syntax and syntax folding on,
 "     associate file suffixes as plsql, open all the folds on file open
+" syntax enable
 " let plsql_fold = 1
 " au BufNewFile,BufRead *.sql,*.pls,*.tps,*.tpb,*.pks,*.pkb,*.pkg,*.trg set filetype=plsql
 " au BufNewFile,BufRead *.sql,*.pls,*.tps,*.tpb,*.pks,*.pkb,*.pkg,*.trg syntax on
 " au Syntax plsql normal zR
+" au Syntax plsql set foldcolumn=2 "optional if you want to see choosable folds on the left
+
 
 if exists("b:current_syntax")
   finish
@@ -49,12 +57,12 @@
 syn match   plsqlHostIdentifier ":[a-z][a-z0-9$_#]*"
 
 " When wanted, highlight the trailing whitespace.
-if exists("plsql_space_errors")
-  if !exists("plsql_no_trail_space_error")
+if get(g:,"plsql_space_errors",0) == 1
+  if get(g:,"plsql_no_trail_space_error",0) == 0
     syn match plsqlSpaceError "\s\+$"
   endif
 
-  if !exists("plsql_no_tab_space_error")
+  if get(g:,"plsql_no_tab_space_error",0) == 0
     syn match plsqlSpaceError " \+\t"me=e-1
   endif
 endif
@@ -134,7 +142,8 @@
 syn keyword plsqlKeyword CREDENTIALS CRITICAL CROSS CROSSEDITION CSCONVERT CUBE CUBE_AJ CUBE_GB CUBE_SJ
 syn keyword plsqlKeyword CUME_DIST CUME_DISTM CURRENT CURRENTV CURRENT_DATE CURRENT_INSTANCE CURRENT_PARTSET_KEY
 syn keyword plsqlKeyword CURRENT_SCHEMA CURRENT_SHARD_KEY CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER
-syn keyword plsqlKeyword CURSOR CURSOR_SHARING_EXACT CURSOR_SPECIFIC_SEGMENT CV CYCLE DAGG_OPTIM_GSETS
+syn match plsqlKeyword "\<CURSOR\>"
+syn keyword plsqlKeyword CURSOR_SHARING_EXACT CURSOR_SPECIFIC_SEGMENT CV CYCLE DAGG_OPTIM_GSETS
 syn keyword plsqlKeyword DANGLING DATA DATABASE DATABASES DATAFILE DATAFILES DATAMOVEMENT DATAOBJNO
 syn keyword plsqlKeyword DATAOBJ_TO_MAT_PARTITION DATAOBJ_TO_PARTITION DATAPUMP DATASTORE DATA_LINK_DML
 syn keyword plsqlKeyword DATA_SECURITY_REWRITE_LIMIT DATA_VALIDATE DATE_MODE DAYS DBA DBA_RECYCLEBIN
@@ -515,7 +524,7 @@
 syn match   plsqlFunction "\.PREV\>"hs=s+1
 syn match   plsqlFunction "\.NEXT\>"hs=s+1
 
-if exists("plsql_legacy_sql_keywords")
+if get(g:,"plsql_legacy_sql_keywords",0) == 1
     " Some of Oracle's SQL keywords.
     syn keyword plsqlSQLKeyword ABORT ACCESS ACCESSED ADD AFTER ALL ALTER AND ANY
     syn keyword plsqlSQLKeyword ASC ATTRIBUTE AUDIT AUTHORIZATION AVG BASE_TABLE
@@ -565,7 +574,7 @@
 syn keyword plsqlException TIMEOUT_ON_RESOURCE TOO_MANY_ROWS VALUE_ERROR
 syn keyword plsqlException ZERO_DIVIDE
 
-if exists("plsql_highlight_triggers")
+if get(g:,"plsql_highlight_triggers",0) == 1
     syn keyword plsqlTrigger INSERTING UPDATING DELETING
 endif
 
@@ -576,7 +585,7 @@
 
 " Various types of comments.
 syntax region plsqlCommentL start="--" skip="\\$" end="$" keepend extend contains=@plsqlCommentGroup,plsqlSpaceError
-if exists("plsql_fold")
+if get(g:,"plsql_fold",0) == 1
     syntax region plsqlComment
         \ start="/\*" end="\*/"
         \ extend
@@ -612,7 +621,7 @@
 syn cluster plsqlIdentifiers contains=plsqlIdentifier,plsqlQuotedIdentifier
 
 " quoted string literals
-if exists("plsql_fold")
+if get(g:,"plsql_fold",0) == 1
     syn region plsqlStringLiteral	matchgroup=plsqlOperator start=+n\?'+  skip=+''+    end=+'+ fold keepend extend
     syn region plsqlStringLiteral	matchgroup=plsqlOperator start=+n\?q'\z([^[(<{]\)+    end=+\z1'+ fold keepend extend
     syn region plsqlStringLiteral	matchgroup=plsqlOperator start=+n\?q'<+   end=+>'+ fold keepend extend
@@ -639,10 +648,10 @@
 " This'll catch mis-matched close-parens.
 syn cluster plsqlParenGroup contains=plsqlParenError,@plsqlCommentGroup,plsqlCommentSkip,plsqlIntLiteral,plsqlFloatLiteral,plsqlNumbersCom
 
-if exists("plsql_bracket_error")
+if get(g:,"plsql_bracket_error",0) == 1
     " I suspect this code was copied from c.vim and never properly considered. Do
     " we even use braces or brackets in sql or pl/sql?
-    if exists("plsql_fold")
+    if get(g:,"plsql_fold",0) == 1
         syn region plsqlParen start='(' end=')' contains=ALLBUT,@plsqlParenGroup,plsqlErrInBracket fold keepend extend transparent
     else
         syn region plsqlParen transparent start='(' end=')' contains=ALLBUT,@plsqlParenGroup,plsqlErrInBracket
@@ -652,7 +661,7 @@
     syn region plsqlBracket transparent start='\[' end=']' contains=ALLBUT,@plsqlParenGroup,plsqlErrInParen
     syn match plsqlErrInBracket contained "[);{}]"
 else
-    if exists("plsql_fold")
+    if get(g:,"plsql_fold",0) == 1
         syn region plsqlParen start='(' end=')' contains=ALLBUT,@plsqlParenGroup,plsqlErrInParen fold keepend extend transparent
     else
         syn region plsqlParen transparent start='(' end=')' contains=ALLBUT,@plsqlParenGroup,plsqlErrInParen
@@ -673,12 +682,12 @@
 syn match plsqlCase "\<END\>\_s\+\<CASE\>"
 syn match plsqlCase "\<CASE\>"
 
-if exists("plsql_fold")
+if get(g:,"plsql_fold",0) == 1
     setlocal foldmethod=syntax
     syn sync fromstart
 
     syn cluster plsqlProcedureGroup contains=plsqlProcedure
-    syn cluster plsqlOnlyGroup contains=@plsqlProcedure,plsqlConditionalBlock,plsqlLoopBlock,plsqlBlock
+    syn cluster plsqlOnlyGroup contains=@plsqlProcedure,plsqlConditionalBlock,plsqlLoopBlock,plsqlBlock,plsqlCursor
 
     syntax region plsqlUpdateSet
         \ start="\(\<update\>\_s\+\(\<set\>\)\@![a-z][a-z0-9$_#]*\_s\+\(\(\<set\>\)\@![a-z][a-z0-9$_#]*\_s\+\)\?\)\|\(\<when\>\_s\+\<matched\>\_s\+\<then\>\_s\+\<update\>\_s\+\)\<set\>"
@@ -698,24 +707,40 @@
         \ transparent
         \ contains=ALLBUT,@plsqlOnlyGroup,plsqlUpdateSet
 
-    " this is brute force and requires you have the procedure/function name in the END
-    " statement. ALthough Oracle makes it optional, we cannot. If you do not
-    " have it, then you can fold the BEGIN/END block of the procedure but not
-    " the specification of it (other than a paren group). You also cannot fold
-    " BEGIN/END blocks in the procedure body. Local procedures will fold as
-    " long as the END statement includes the procedure/function name.
-    " As for why we cannot make it work any other way, I don't know. It is
-    " something to do with both plsqlBlock and plsqlProcedure both consuming BEGIN and END,
-    " even if we use a lookahead for one of them.
-    syntax region plsqlProcedure
-        "\ start="\(create\(\_s\+or\_s\+replace\)\?\_s\+\)\?\<\(procedure\|function\)\>\_s\+\z([a-z][a-z0-9$_#]*\)"
-        \ start="\<\(procedure\|function\)\>\_s\+\(\z([a-z][a-z0-9$_#]*\)\)\([^;]\|\n\)\{-}\<\(is\|as\)\>\_.\{-}\(\<end\>\_s\+\2\_s*;\)\@="
-        \ end="\<end\>\_s\+\z1\_s*;"
+    if get(g:,"plsql_disable_procedure_fold",0) == 0
+        " this is brute force and requires you have the procedure/function name in the END
+        " statement. ALthough Oracle makes it optional, we cannot. If you do not
+        " have it, then you can fold the BEGIN/END block of the procedure but not
+        " the specification of it (other than a paren group). You also cannot fold
+        " BEGIN/END blocks in the procedure body. Local procedures will fold as
+        " long as the END statement includes the procedure/function name.
+        " As for why we cannot make it work any other way, I don't know. It is
+        " something to do with both plsqlBlock and plsqlProcedure both consuming BEGIN and END,
+        " even if we use a lookahead for one of them.
+        "
+        " If you habitualy do not put the method name in the END statement,
+        " this can be expensive because it searches to end of file on every
+        " procedure/function declaration
+        "
+            "\ start="\(create\(\_s\+or\_s\+replace\)\?\_s\+\)\?\<\(procedure\|function\)\>\_s\+\z([a-z][a-z0-9$_#]*\)"
+        syntax region plsqlProcedure
+            \ start="\<\(procedure\|function\)\>\_s\+\(\z([a-z][a-z0-9$_#]*\)\)\([^;]\|\n\)\{-}\<\(is\|as\)\>\_.\{-}\(\<end\>\_s\+\2\_s*;\)\@="
+            \ end="\<end\>\_s\+\z1\_s*;"
+            \ fold
+            \ keepend 
+            \ extend
+            \ transparent
+            \ contains=ALLBUT,plsqlBlock
+    endif
+
+    syntax region plsqlCursor
+        \ start="\<cursor\>\_s\+[a-z][a-z0-9$_#]*\(\_s*([^)]\+)\)\?\(\_s\+return\_s\+\S\+\)\?\_s\+is"
+        \ end=";"
         \ fold
         \ keepend 
         \ extend
         \ transparent
-        \ contains=ALLBUT,plsqlBlock
+        \ contains=ALLBUT,@plsqlOnlyGroup
 
     syntax region plsqlBlock
         \ start="\<begin\>"
@@ -802,7 +827,7 @@
 hi def link plsqlTypeAttribute      StorageClass
 hi def link plsqlTodo		        Todo
 " to be able to change them after loading, need override whether defined or not
-if exists("plsql_legacy_sql_keywords")
+if get(g:,"plsql_legacy_sql_keywords",0) == 1
     hi link plsqlSQLKeyword         Function
     hi link plsqlSymbol	            Normal
     hi link plsqlParen	            Normal
