patch 7.4.2359
Problem:    Memory leak in timer_start().
Solution:   Check the right field to be NULL.
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 906fa39..7dd5c2a 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -12429,7 +12429,7 @@
 	free_callback(callback, partial);
     else
     {
-	if (timer->tr_partial == NULL)
+	if (partial == NULL)
 	    timer->tr_callback = vim_strsave(callback);
 	else
 	    /* pointer into the partial */
diff --git a/src/testdir/test_timers.vim b/src/testdir/test_timers.vim
index 07c6876..ebc6665 100644
--- a/src/testdir/test_timers.vim
+++ b/src/testdir/test_timers.vim
@@ -48,12 +48,12 @@
 
 func Test_with_partial_callback()
   let g:val = 0
-  let s:meow = {}
-  function s:meow.bite(...)
-    let g:val += 1
+  let meow = {'one': 1}
+  function meow.bite(...)
+    let g:val += self.one
   endfunction
 
-  call timer_start(50, s:meow.bite)
+  call timer_start(50, meow.bite)
   let slept = WaitFor('g:val == 1')
   call assert_equal(1, g:val)
   if has('reltime')
diff --git a/src/version.c b/src/version.c
index 0767d4a..65757ab 100644
--- a/src/version.c
+++ b/src/version.c
@@ -764,6 +764,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2359,
+/**/
     2358,
 /**/
     2357,