diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 6a7d9ad..f69886c 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1098,7 +1098,6 @@
 - Conceal feature: no update when moving to another window. (Dominique Pelle,
   2010 Jul 5)  Vince will look into it.
 Patches to possibly include:
-- Mac: console clipboard support. (Bjorn Winckler, 2010 Jul 12)
 - Win32: patch for better font scaling. (George Reilly, 2009 Mar 26) 
 - Patch for completion of ":find" arguments. (Nazri Ramliy, 2009 Feb 22, 26)
   8   For ":find" and ":sfind" expand files found in 'path'.
@@ -1154,10 +1153,6 @@
 	You can already yank lines and use :@" to execute them.
 	Most of do_source() would not be used, need a new function.
 	It's easy when not doing breakpoints or profiling.
-Probably not now:
-- Use timestamps for undo, so that a version a certain time ago can be found
-  and info before some time/date can be flushed. 'undopersist' gives maximum
-  time to keep undo: "3h", "1d", "2w", "1y", etc.
 
 
 More patches:
@@ -3954,6 +3949,11 @@
 Undo:
 9   After undo/redo, in the message show whether the buffer is modified or
     not.
+8   Use timestamps for undo, so that a version a certain time ago can be found
+    and info before some time/date can be flushed. 'undopersist' gives maximum
+    time to keep undo: "3h", "1d", "2w", "1y", etc.
+8   Search for pattern in undo tree, showing when it happened and the text
+    state, so that you can jump to it.
 8   Undo tree: visually show the tree somehow (Damian Conway)
     Show only the leaves, indicating how many changed from the branch and the
     timestamp?
@@ -3964,8 +3964,6 @@
     was changed outside of Vim.
     Would require doing a diff between the buffer text and the file and
     storing the differences.
-8   Search for pattern in undo tree, showing when it happened and the text
-    state, so that you can jump to it.
 -   Make it possible to undo all the commands from a mapping, including a
     trailing unfinished command, e.g. for ":map K iX^[r".
 -   When accidentally hitting "R" instead of Ctrl-R, further Ctrl-R is not
diff --git a/src/ops.c b/src/ops.c
index 4eef688..5e0c99f 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -4155,7 +4155,8 @@
     char_u	*cend;
     char_u	*newp;
     char_u	*spaces;	/* number of spaces inserte before a line */
-    int		endcurr1, endcurr2;
+    int		endcurr1 = NUL;
+    int		endcurr2 = NUL;
     int		currsize = 0;	/* size of the current line */
     int		sumsize = 0;	/* size of the long new line */
     linenr_T	t;
diff --git a/src/os_macosx.m b/src/os_macosx.m
index 7067df4..dcde551 100644
--- a/src/os_macosx.m
+++ b/src/os_macosx.m
@@ -686,7 +686,7 @@
 	    n = [mstring replaceOccurrencesOfString:@"\x0d" withString:@"\x0a"
 					   options:0 range:range];
 	}
-	
+
 	/* Scan for newline character to decide whether the string should be
 	 * pasted line-wise or character-wise.
 	 */
@@ -734,7 +734,7 @@
     cbd->owned = TRUE;
     clip_get_selection(cbd);
     cbd->owned = FALSE;
-    
+
     /* Get the text to put on the pasteboard. */
     long_u llen = 0; char_u *str = 0;
     int motion_type = clip_convert_selection(&str, &llen, cbd);
@@ -771,7 +771,7 @@
 	[pb setPropertyList:plist forType:VimPboardType];
 
 	[pb setString:string forType:NSStringPboardType];
-	
+
 	[string release];
     }
 
diff --git a/src/proto.h b/src/proto.h
index 01db689..c39f7f0 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -277,6 +277,13 @@
 #ifdef MACOS_CONVERT
 # include "os_mac_conv.pro"
 #endif
+#if defined(MACOS_X_UNIX) && defined(FEAT_CLIPBOARD) && !defined(FEAT_GUI)
+/* functions in os_macosx.m */
+void clip_mch_lose_selection(VimClipboard *cbd);
+int clip_mch_own_selection(VimClipboard *cbd);
+void clip_mch_request_selection(VimClipboard *cbd);
+void clip_mch_set_selection(VimClipboard *cbd);
+#endif
 
 #ifdef __BORLANDC__
 # define _PROTO_H
