diff --git a/src/eval.c b/src/eval.c
index 7250556..38893c7 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -15774,6 +15774,17 @@
 }
 
 #ifdef FEAT_FLOAT
+
+/*
+ * round() is not in C90, use ceil() or floor() instead.
+ */
+    float_T
+vim_round(f)
+    float_T f;
+{
+    return f > 0 ? floor(f + 0.5) : ceil(f - 0.5);
+}
+
 /*
  * "round({float})" function
  */
@@ -15786,8 +15797,7 @@
 
     rettv->v_type = VAR_FLOAT;
     if (get_float_arg(argvars, &f) == OK)
-	/* round() is not in C90, use ceil() or floor() instead. */
-	rettv->vval.v_float = f > 0 ? floor(f + 0.5) : ceil(f - 0.5);
+	rettv->vval.v_float = vim_round(f);
     else
 	rettv->vval.v_float = 0.0;
 }
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 66b7e4e..353ae89 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -982,7 +982,7 @@
 	double usec = (tm->tv_sec * 1000000.0 + tm->tv_usec) / count;
 
 	tm2->tv_sec = floor(usec / 1000000.0);
-	tm2->tv_usec = round(usec - (tm2->tv_sec * 1000000.0));
+	tm2->tv_usec = vim_round(usec - (tm2->tv_sec * 1000000.0));
 # endif
     }
 }
diff --git a/src/proto/eval.pro b/src/proto/eval.pro
index 3f2816e..ee2da1b 100644
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -75,13 +75,12 @@
 dictitem_T *dict_find __ARGS((dict_T *d, char_u *key, int len));
 char_u *get_dict_string __ARGS((dict_T *d, char_u *key, int save));
 long get_dict_number __ARGS((dict_T *d, char_u *key));
-void dict_extend __ARGS((dict_T *d1, dict_T *d2, char_u *action));
 char_u *get_function_name __ARGS((expand_T *xp, int idx));
 char_u *get_expr_name __ARGS((expand_T *xp, int idx));
-char_u *get_expanded_name __ARGS((char_u *name, int check));
-int translated_function_exists __ARGS((char_u *name));
 int func_call __ARGS((char_u *name, typval_T *args, dict_T *selfdict, typval_T *rettv));
+void dict_extend __ARGS((dict_T *d1, dict_T *d2, char_u *action));
 void mzscheme_call_vim __ARGS((char_u *name, typval_T *args, typval_T *rettv));
+float_T vim_round __ARGS((float_T f));
 long do_searchpair __ARGS((char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit));
 void set_vim_var_nr __ARGS((int idx, long val));
 long get_vim_var_nr __ARGS((int idx));
@@ -110,6 +109,8 @@
 void ex_execute __ARGS((exarg_T *eap));
 void ex_function __ARGS((exarg_T *eap));
 void free_all_functions __ARGS((void));
+int translated_function_exists __ARGS((char_u *name));
+char_u *get_expanded_name __ARGS((char_u *name, int check));
 void func_dump_profile __ARGS((FILE *fd));
 char_u *get_user_func_name __ARGS((expand_T *xp, int idx));
 void ex_delfunction __ARGS((exarg_T *eap));
diff --git a/src/version.c b/src/version.c
index 46b9c54..394e6d5 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1159,
+/**/
     1158,
 /**/
     1157,
