diff -r b4b5c5eadd9a runtime/doc/map.txt
--- a/runtime/doc/map.txt	Fri Jun 07 22:39:40 2013 +0200
+++ b/runtime/doc/map.txt	Sat Jun 08 09:54:51 2013 +0200
@@ -1242,6 +1242,7 @@
 	-complete=shellcmd	Shell command
 	-complete=sign		|:sign| suboptions
 	-complete=syntax	syntax file names |'syntax'|
+	-complete=syntime	:syntime suboptions
 	-complete=tag		tags
 	-complete=tag_listfiles	tags, file names are shown when CTRL-D is hit
 	-complete=user		user names
diff -r b4b5c5eadd9a src/ex_cmds.h
--- a/src/ex_cmds.h	Fri Jun 07 22:39:40 2013 +0200
+++ b/src/ex_cmds.h	Sat Jun 08 09:54:51 2013 +0200
@@ -926,7 +926,7 @@
 EX(CMD_syntax,		"syntax",	ex_syntax,
 			EXTRA|NOTRLCOM|CMDWIN),
 EX(CMD_syntime,		"syntime",	ex_syntime,
-			WORD1|TRLBAR|CMDWIN),
+			NEEDARG|WORD1|TRLBAR|CMDWIN),
 EX(CMD_syncbind,	"syncbind",	ex_syncbind,
 			TRLBAR),
 EX(CMD_t,		"t",		ex_copymove,
diff -r b4b5c5eadd9a src/ex_docmd.c
--- a/src/ex_docmd.c	Fri Jun 07 22:39:40 2013 +0200
+++ b/src/ex_docmd.c	Sat Jun 08 09:54:51 2013 +0200
@@ -3994,6 +3994,12 @@
 	    xp->xp_pattern = arg;
 	    break;
 #endif
+#if defined(FEAT_PROFILE)
+	case CMD_syntime:
+	    xp->xp_context = EXPAND_SYNTIME;
+	    xp->xp_pattern = arg;
+	    break;
+#endif
 
 #endif /* FEAT_CMDL_COMPL */
 
@@ -5436,6 +5442,9 @@
     {EXPAND_MAPPINGS, "mapping"},
     {EXPAND_MENUS, "menu"},
     {EXPAND_OWNSYNTAX, "syntax"},
+#if defined(FEAT_PROFILE)
+    {EXPAND_SYNTIME, "syntime"},
+#endif
     {EXPAND_SETTINGS, "option"},
     {EXPAND_SHELLCMD, "shellcmd"},
 #if defined(FEAT_SIGNS)
diff -r b4b5c5eadd9a src/ex_getln.c
--- a/src/ex_getln.c	Fri Jun 07 22:39:40 2013 +0200
+++ b/src/ex_getln.c	Sat Jun 08 09:54:51 2013 +0200
@@ -4674,6 +4674,9 @@
 #ifdef FEAT_SYN_HL
 	    {EXPAND_SYNTAX, get_syntax_name, TRUE, TRUE},
 #endif
+#ifdef FEAT_PROFILE
+	    {EXPAND_SYNTIME, get_syntime_arg, TRUE, TRUE},
+#endif
 	    {EXPAND_HIGHLIGHT, get_highlight_name, TRUE, TRUE},
 #ifdef FEAT_AUTOCMD
 	    {EXPAND_EVENTS, get_event_name, TRUE, TRUE},
diff -r b4b5c5eadd9a src/proto/syntax.pro
--- a/src/proto/syntax.pro	Fri Jun 07 22:39:40 2013 +0200
+++ b/src/proto/syntax.pro	Sat Jun 08 09:54:51 2013 +0200
@@ -20,6 +20,7 @@
 int syn_get_stack_item __ARGS((int i));
 int syn_get_foldlevel __ARGS((win_T *wp, long lnum));
 void ex_syntime __ARGS((exarg_T *eap));
+char_u *get_syntime_arg __ARGS((expand_T *xp, int idx));
 void init_highlight __ARGS((int both, int reset));
 int load_colors __ARGS((char_u *name));
 void do_highlight __ARGS((char_u *line, int forceit, int init));
diff -r b4b5c5eadd9a src/syntax.c
--- a/src/syntax.c	Fri Jun 07 22:39:40 2013 +0200
+++ b/src/syntax.c	Sat Jun 08 09:54:51 2013 +0200
@@ -6577,6 +6577,27 @@
     }
 }
 
+#if defined(FEAT_CMDL_COMPL) || defined(PROTO)
+/*
+ * Function given to ExpandGeneric() to obtain the possible arguments of the
+ * ":syntime {on,off,clear,report}" command.
+ */
+    char_u *
+get_syntime_arg(xp, idx)
+    expand_T	*xp UNUSED;
+    int		idx;
+{
+    switch (idx)
+    {
+	case 0: return "on";
+	case 1: return "off";
+	case 2: return "clear";
+	case 3: return "report";
+    }
+    return NULL;
+}
+#endif
+
 typedef struct
 {
     proftime_T	total;
@@ -6610,7 +6631,9 @@
 {
     int		idx;
     synpat_T	*spp;
+# ifdef FEAT_FLOAT
     proftime_T	tm;
+# endif
     int		len;
     proftime_T	total_total;
     int		total_count = 0;
diff -r b4b5c5eadd9a src/vim.h
--- a/src/vim.h	Fri Jun 07 22:39:40 2013 +0200
+++ b/src/vim.h	Sat Jun 08 09:54:51 2013 +0200
@@ -783,6 +783,7 @@
 #define EXPAND_LOCALES		40
 #define EXPAND_HISTORY		41
 #define EXPAND_USER		42
+#define EXPAND_SYNTIME		43
 
 /* Values for exmode_active (0 is no exmode) */
 #define EXMODE_NORMAL		1
