patch 7.4.2310
Problem:    Accessing freed memory when a timer does not repeat.
Solution:   Free after removing it. (Dominique Pelle)
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index a76b055..acaef9f 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -1222,8 +1222,8 @@
 		}
 		else
 		{
-		    free_timer(timer);
 		    remove_timer(timer);
+		    free_timer(timer);
 		}
 		/* the callback may do anything, start all over */
 		break;