diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 78ad818..2405457 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1088,12 +1088,6 @@
 - using NSIS 2.46: install on Windows 7 works, but no "Edit with Vim" menu.
    Use register_shell_extension()? (George Reilly, 2010 May 26)
    Ron's version: http://dev.ronware.org/p/vim/finfo?name=gvim.nsi
-- Also crypt the swap file, each block separately:
-    - When changing the password or 'cryptmethod' need to read back with the
-      old password and write again with the new one.
-      Problem: when the file is not written, key differs between text file and
-      swap file!
-- Patch for :ownsyntax completion (Dominique Pelle, 2010 Jun 20)
 - Patch for conceal feature and 'foldcolumn'. (Dominique Pelle, 2010 Jun 10,
   second patch)
   Also patch from Vince, 2010 Jun 15.  And another June 16.
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 96a3a87..4bb3e78 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -3803,6 +3803,11 @@
 	    xp->xp_pattern = arg;
 	    break;
 
+	case CMD_ownsyntax:
+	    xp->xp_context = EXPAND_FILETYPE;
+	    xp->xp_pattern = arg;
+	    break;
+
 #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
 	&& (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
 	case CMD_language:
diff --git a/src/ex_getln.c b/src/ex_getln.c
index e8b6f7c..e6ed44a 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -4108,6 +4108,7 @@
 	if (context == EXPAND_HELP
 		|| context == EXPAND_COLORS
 		|| context == EXPAND_COMPILER
+		|| context == EXPAND_FILETYPE
 		|| (context == EXPAND_TAGS && fname[0] == '/'))
 	    retval = vim_strnsave(fname, len);
 	else
@@ -4489,6 +4490,8 @@
 	return ExpandRTDir(pat, num_file, file, "colors");
     if (xp->xp_context == EXPAND_COMPILER)
 	return ExpandRTDir(pat, num_file, file, "compiler");
+    if (xp->xp_context == EXPAND_FILETYPE)
+	return ExpandRTDir(pat, num_file, file, "syntax");
 # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
     if (xp->xp_context == EXPAND_USER_LIST)
 	return ExpandUserList(xp, num_file, file);
@@ -4928,15 +4931,15 @@
 #endif
 
 /*
- * Expand color scheme names: 'runtimepath'/colors/{pat}.vim
- * or compiler names.
+ * Expand color scheme, compiler or filetype names:
+ * 'runtimepath'/{dirname}/{pat}.vim
  */
     static int
 ExpandRTDir(pat, num_file, file, dirname)
     char_u	*pat;
     int		*num_file;
     char_u	***file;
-    char	*dirname;	/* "colors" or "compiler" */
+    char	*dirname;	/* "colors", "compiler" or "syntax" */
 {
     char_u	*all;
     char_u	*s;
diff --git a/src/vim.h b/src/vim.h
index b340792..cb2bc7d 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -769,6 +769,7 @@
 #define EXPAND_SIGN		34
 #define EXPAND_PROFILE		35
 #define EXPAND_BEHAVE		36
+#define EXPAND_FILETYPE		37
 
 /* Values for exmode_active (0 is no exmode) */
 #define EXMODE_NORMAL		1
@@ -1556,7 +1557,7 @@
 
 /*
  * Well, you won't believe it, but some S/390 machines ("host", now also known
- * as zServer) us 31 bit pointers. There are also some newer machines, that
+ * as zServer) use 31 bit pointers. There are also some newer machines, that
  * use 64 bit pointers. I don't know how to distinguish between 31 and 64 bit
  * machines, so the best way is to assume 31 bits whenever we detect OS/390
  * Unix.
