diff --git a/runtime/autoload/rubycomplete.vim b/runtime/autoload/rubycomplete.vim
index 3677b25..6ead0fd 100644
--- a/runtime/autoload/rubycomplete.vim
+++ b/runtime/autoload/rubycomplete.vim
@@ -2,8 +2,7 @@
 " Language:		Ruby
 " Maintainer:		Mark Guzman <segfault@hasno.info>
 " URL:			https://github.com/vim-ruby/vim-ruby
-" Release Coordinator:	Doug Kearns <dougkearns@gmail.com>
-" Last Change:		2020 Apr 12
+" Last Change:		2023 Dec 31
 " ----------------------------------------------------------------------------
 "
 " Ruby IRB/Complete author: Keiju ISHITSUKA(keiju@ishitsuka.com)
@@ -490,7 +489,7 @@
         trail = "%s%s" % [ dir, sub ]
         tcfg = "%sconfig" % trail
 
-        if File.exists?( tcfg )
+        if File.exist?( tcfg )
           rails_base = trail
           break
         end
@@ -503,7 +502,7 @@
 
     bootfile = rails_base + "config/boot.rb"
     envfile = rails_base + "config/environment.rb"
-    if File.exists?( bootfile ) && File.exists?( envfile )
+    if File.exist?( bootfile ) && File.exist?( envfile )
       begin
         require bootfile
         require envfile
diff --git a/runtime/ftplugin/ruby.vim b/runtime/ftplugin/ruby.vim
index b61c176..b07ed53 100644
--- a/runtime/ftplugin/ruby.vim
+++ b/runtime/ftplugin/ruby.vim
@@ -2,8 +2,7 @@
 " Language:		Ruby
 " Maintainer:		Tim Pope <vimNOSPAM@tpope.org>
 " URL:			https://github.com/vim-ruby/vim-ruby
-" Release Coordinator:	Doug Kearns <dougkearns@gmail.com>
-" Last Change:		2023 Sep 1st
+" Last Change:		2023 Dec 31
 
 if (exists("b:did_ftplugin"))
   finish
@@ -60,35 +59,38 @@
   let g:ruby_version_paths = {}
 endif
 
+let s:path_split = has('win32') ? ';' : ':'
+
 function! s:query_path(root) abort
-  " Disabled by default for security reasons.  
-  if !get(g:, 'ruby_exec', get(g:, 'plugin_exec', 0))
-    return []
+  " Disabled by default for security reasons.
+  if !get(g:, 'ruby_exec', get(g:, 'plugin_exec', 0)) || empty(a:root)
+    return map(split($RUBYLIB, s:path_split), 'v:val ==# "." ? "" : v:val')
   endif
   let code = "print $:.join %q{,}"
-  if &shell =~# 'sh' && empty(&shellxquote)
-    let prefix = 'env PATH='.shellescape($PATH).' '
-  else
-    let prefix = ''
-  endif
   if &shellxquote == "'"
-    let path_check = prefix.'ruby --disable-gems -e "' . code . '"'
+    let args = ' --disable-gems -e "' . code . '"'
   else
-    let path_check = prefix."ruby --disable-gems -e '" . code . "'"
+    let args = " --disable-gems -e '" . code . "'"
   endif
 
-  let cd = haslocaldir() ? 'lcd' : 'cd'
+  let cd = haslocaldir() ? 'lcd' : exists(':tcd') && haslocaldir(-1) ? 'tcd' : 'cd'
   let cwd = fnameescape(getcwd())
   try
     exe cd fnameescape(a:root)
-    let s:tmp_cwd = getcwd()
-    if (fnamemodify(exepath('ruby'), ':p:h') ==# cwd
-          \ && (index(split($PATH,has("win32")? ';' : ':'), s:tmp_cwd) == -1 || s:tmp_cwd == '.'))
-      let path = []
+    for dir in split($PATH, s:path_split)
+      if dir !=# '.' && executable(dir . '/ruby') == 1
+	let exepath = dir . '/ruby'
+	break
+      endif
+    endfor
+    if exists('l:exepath')
+      let path = split(system(exepath . args),',')
+      if v:shell_error
+	let path = []
+      endif
     else
-      let path = split(system(path_check),',')
+      let path = []
     endif
-    unlet! s:tmp_cwd
     exe cd cwd
     return path
   finally
@@ -129,10 +131,8 @@
   if !exists('g:ruby_default_path')
     if has("ruby") && has("win32")
       ruby ::VIM::command( 'let g:ruby_default_path = split("%s",",")' % $:.join(%q{,}) )
-    elseif executable('ruby') && !empty($HOME)
-      let g:ruby_default_path = s:query_path($HOME)
     else
-      let g:ruby_default_path = map(split($RUBYLIB,':'), 'v:val ==# "." ? "" : v:val')
+      let g:ruby_default_path = s:query_path($HOME)
     endif
   endif
   let s:ruby_paths = g:ruby_default_path
