diff --git a/7.4.666 b/7.4.666
new file mode 100644
index 0000000..f85cf91
--- /dev/null
+++ b/7.4.666
@@ -0,0 +1,90 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.666
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.666
+Problem:    There is a chance that Vim may lock up.
+Solution:   Handle timer events differently. (Aaron Burrow)
+Files:	    src/os_unix.c
+
+
+*** ../vim-7.4.665/src/os_unix.c	2014-12-17 17:59:26.912631374 +0100
+--- src/os_unix.c	2015-03-20 16:21:43.269619610 +0100
+***************
+*** 7096,7114 ****
+  {
+      XEvent event;
+  
+!     while (XtAppPending(app_context) && !vim_is_input_buf_full())
+      {
+! 	XtAppNextEvent(app_context, &event);
+! #ifdef FEAT_CLIENTSERVER
+  	{
+! 	    XPropertyEvent *e = (XPropertyEvent *)&event;
+  
+! 	    if (e->type == PropertyNotify && e->window == commWindow
+  		   && e->atom == commProperty && e->state == PropertyNewValue)
+! 		serverEventProc(xterm_dpy, &event);
+! 	}
+  #endif
+! 	XtDispatchEvent(&event);
+      }
+  }
+  
+--- 7096,7128 ----
+  {
+      XEvent event;
+  
+!     for (;;)
+      {
+!         XtInputMask mask = XtAppPending(app_context);
+! 
+!         if (mask == 0 || vim_is_input_buf_full())
+! 	    break;
+! 
+!         if (mask & XtIMXEvent)
+  	{
+! 	    /* There is an event to process. */
+!             XtAppNextEvent(app_context, &event);
+! #ifdef FEAT_CLIENTSERVER
+! 	    {
+! 		XPropertyEvent *e = (XPropertyEvent *)&event;
+  
+! 		if (e->type == PropertyNotify && e->window == commWindow
+  		   && e->atom == commProperty && e->state == PropertyNewValue)
+!                 serverEventProc(xterm_dpy, &event);
+! 	    }
+  #endif
+!             XtDispatchEvent(&event);
+!         }
+! 	else
+! 	{
+! 	    /* There is something else than an event to process. */
+!             XtAppProcessEvent(app_context, mask);
+!         }
+      }
+  }
+  
+*** ../vim-7.4.665/src/version.c	2015-03-20 15:58:47.417117245 +0100
+--- src/version.c	2015-03-20 16:07:37.499149050 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     666,
+  /**/
+
+-- 
+Q:   How many hardware engineers does it take to change a lightbulb?
+A:   None.  We'll fix it in software.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///