updated for version 7.4.490
Problem:    Cannot specify the buffer to use for "do" and "dp", making them
            useless for three-way diff.
Solution:   Use the count as the buffer number. (James McCoy)
diff --git a/src/diff.c b/src/diff.c
index d324f99..caee6e5 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -2107,12 +2107,20 @@
  * "dp" and "do" commands.
  */
     void
-nv_diffgetput(put)
+nv_diffgetput(put, count)
     int		put;
+    long	count;
 {
     exarg_T	ea;
+    char_u	buf[30];
 
-    ea.arg = (char_u *)"";
+    if (count == 0)
+	ea.arg = (char_u *)"";
+    else
+    {
+	vim_snprintf((char *)buf, 30, "%ld", count);
+	ea.arg = buf;
+    }
     if (put)
 	ea.cmdidx = CMD_diffput;
     else