diff --git a/runtime/autoload/dist/vim.vim b/runtime/autoload/dist/vim.vim
index 57b757f..d5a8984 100644
--- a/runtime/autoload/dist/vim.vim
+++ b/runtime/autoload/dist/vim.vim
@@ -1,17 +1,30 @@
-vim9script
+" Vim runtime support library,
+" runs the vim9 script version or legacy script version
+" on demand (mostly for Neovim compatability)
+"
+" Maintainer:	The Vim Project <https://github.com/vim/vim>
+" Last Change:	2023 Nov 04
 
-# Vim runtime support library
-#
-# Maintainer:	The Vim Project <https://github.com/vim/vim>
-# Last Change:	2023 Oct 25
 
-export def IsSafeExecutable(filetype: string, executable: string): bool
-  var cwd = getcwd()
-  return get(g:, filetype .. '_exec', get(g:, 'plugin_exec', 0))
-    && (fnamemodify(exepath(executable), ':p:h') !=# cwd
-        || (split($PATH, has('win32') ? ';' : ':')->index(cwd) != -1
-            && cwd != '.'))
-enddef
+" enable the zip and gzip plugin by default, if not set
+if !exists('g:zip_exec')
+  let g:zip_exec = 1
+endif
 
-# Uncomment this line to check for compilation errors early
-# defcompile
+if !exists('g:gzip_exec')
+  let g:gzip_exec = 1
+endif
+
+if !exists(":def")
+    function dist#vim#IsSafeExecutable(filetype, executable)
+    let cwd = getcwd()
+    return get(g:, a:filetype .. '_exec', get(g:, 'plugin_exec', 0)) &&
+          \ (fnamemodify(exepath(a:executable), ':p:h') !=# cwd
+          \ || (split($PATH, has('win32') ? ';' : ':')->index(cwd) != -1 &&
+          \  cwd != '.'))
+    endfunction
+else
+    def dist#vim#IsSafeExecutable(filetype: string, executable: string): bool
+      return dist#vim9#IsSafeExecutable(filetype, executable)
+    enddef
+endif
