diff --git a/runtime/ftplugin/fpcmake.vim b/runtime/ftplugin/fpcmake.vim
new file mode 100644
index 0000000..8d95083
--- /dev/null
+++ b/runtime/ftplugin/fpcmake.vim
@@ -0,0 +1,25 @@
+" Vim filetype plugin file
+" Language:	Free Pascal Makefile Generator
+" Maintainer:	Doug Kearns <dougkearns@gmail.com>
+" Last Change:	2021 Apr 23
+
+if exists("b:did_ftplugin")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+runtime! ftplugin/make.vim
+
+if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
+  let b:browsefilter = "Free Pascal Makefile Definition Files (*.fpc)\t*.fpc\n" ..
+		     \ "All Files (*.*)\t*.*\n"
+endif
+
+let b:undo_ftplugin = b:undo_ftplugin .. " | unlet! b:browsefilter"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
+" vim: nowrap sw=2 sts=2 ts=8 noet:
diff --git a/runtime/ftplugin/pascal.vim b/runtime/ftplugin/pascal.vim
index 5ff18b9..2de9256 100644
--- a/runtime/ftplugin/pascal.vim
+++ b/runtime/ftplugin/pascal.vim
@@ -1,20 +1,50 @@
 " Vim filetype plugin file
-" Language:	pascal
-" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
-" Last Changed: 11 Apr 2011
-" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
+" Language:		Pascal
+" Maintainer:		Doug Kearns <dougkearns@gmail.com>
+" Previous Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
+" Last Change:		2021 Apr 23
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
 
-if exists("loaded_matchit")
-    let b:match_ignorecase = 1 " (pascal is case-insensitive)
+let s:cpo_save = &cpo
+set cpo&vim
 
-    let b:match_words = '\<\%(begin\|case\|record\|object\|try\)\>'
-    let b:match_words .= ':\<^\s*\%(except\|finally\)\>:\<end\>'
-    let b:match_words .= ',\<repeat\>:\<until\>'
-    let b:match_words .= ',\<if\>:\<else\>'
+set comments=s:(*,m:\ ,e:*),s:{,m:\ ,e:}
+set commentstring={%s}
+
+if exists("pascal_delphi")
+  set comments+=:///
 endif
 
-" Undo the stuff we changed.
-let b:undo_ftplugin = "unlet! b:match_words"
+if !exists("pascal_traditional")
+  set commentstring=//\ %s
+  set comments+=://
+endif
+
+setlocal formatoptions-=t formatoptions+=croql
+
+if exists("loaded_matchit")
+  let b:match_ignorecase = 1 " (Pascal is case-insensitive)
+
+  let b:match_words  = '\<\%(asm\|begin\|case\|\%(\%(=\|packed\)\s*\)\@<=\%(class\|object\)\|\%(=\s*\)\@<=interface\|record\|try\)\>'
+  let b:match_words .= ':\%(^\s*\)\@<=\%(except\|finally\|else\|otherwise\)\>'
+  let b:match_words .= ':\<end\>\.\@!'
+
+  let b:match_words .= ',\<repeat\>:\<until\>'
+  " let b:match_words .= ',\<if\>:\<else\>' " FIXME - else clashing with middle else. It seems like a debatable use anyway.
+  let b:match_words .= ',\<unit\>:\<\%(\%(^\s*\)\@<=interface\|implementation\|initialization\|finalization\)\>:\<end\.'
+endif
+
+if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
+  let b:browsefilter = "Pascal Source Files (*.pas *.pp *.inc)\t*.pas;*.pp;*.inc\n" .
+		     \ "All Files (*.*)\t*.*\n"
+endif
+
+let b:undo_ftplugin = "setl fo< cms< com< " ..
+		    \ "| unlet! b:browsefilter b:match_words b:match_ignorecase"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
+" vim: nowrap sw=2 sts=2 ts=8 noet:
