Add 'relativenumber' patch from Markus Heidelberg.
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 7475046..f1785bb 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1884,8 +1884,9 @@
 			parenthesis match.  When included "%" ignores
 			backslashes, which is Vi compatible.
 								*cpo-n*
-		n	When included, the column used for 'number' will also
-			be used for text of wrapped lines.
+		n	When included, the column used for 'number' and
+			'relativenumber' will also be used for text of wrapped
+			lines.
 								*cpo-o*
 		o	Line offset to search command is not remembered for
 			next search.
@@ -3608,7 +3609,8 @@
 	|hl-Search|	 l  last search pattern highlighting (see 'hlsearch')
 	|hl-MoreMsg|	 m  |more-prompt|
 	|hl-ModeMsg|	 M  Mode (e.g., "-- INSERT --")
-	|hl-LineNr|	 n  line number for ":number" and ":#" commands
+	|hl-LineNr|	 n  line number for ":number" and ":#" commands, and
+			    when 'number' or 'relativenumber' option is set.
 	|hl-Question|	 r  |hit-enter| prompt and yes/no questions
 	|hl-StatusLine|	 s  status line of current window |status-line|
 	|hl-StatusLineNC| S  status lines of not-current windows
@@ -4871,6 +4873,7 @@
 	When a long, wrapped line doesn't start with the first character, '-'
 	characters are put before the number.
 	See |hl-LineNr| for the highlighting used for the number.
+	When setting this option, 'relativenumber' is reset.
 
 						*'numberwidth'* *'nuw'*
 'numberwidth' 'nuw'	number	(Vim default: 4  Vi default: 8)
@@ -4879,13 +4882,14 @@
 			{only available when compiled with the |+linebreak|
 			feature}
 	Minimal number of columns to use for the line number.  Only relevant
-	when the 'number' option is set or printing lines with a line number.
-	Since one space is always between the number and the text, there is
-	one less character for the number itself.
+	when the 'number' or 'relativenumber' option is set or printing lines
+	with a line number. Since one space is always between the number and
+	the text, there is one less character for the number itself.
 	The value is the minimum width.  A bigger width is used when needed to
-	fit the highest line number in the buffer.  Thus with the Vim default
-	of 4 there is room for a line number up to 999.  When the buffer has
-	1000 lines five columns will be used.
+	fit the highest line number in the buffer respectively the number of
+	rows in the window, depending on whether 'number' or 'relativenumber'
+	is set. Thus with the Vim default of 4 there is room for a line number
+	up to 999. When the buffer has 1000 lines five columns will be used.
 	The minimum value is 1, the maximum value is 10.
 	NOTE: 'numberwidth' is reset to 8 when 'compatible' is set.
 
@@ -5259,6 +5263,25 @@
 	matches will be highlighted.  This is used to avoid that Vim hangs
 	when using a very complicated pattern.
 
+		*'relativenumber'* *'rnu'* *'norelativenumber'* *'nornu'*
+'relativenumber' 'rnu'	boolean	(default off)
+			local to window
+			{not in Vi}
+	Show the line number relative to the line with the cursor in front of
+	each line. Relative line numbers help you using the |count| you can
+	precede some vertical motion commands (e.g. j k + -) with, without
+	having to calculate it yourself. Especially useful in combination with
+	other commands (e.g. y d c < > gq gw =).
+	When the 'n' option is excluded from 'cpoptions' a wrapped
+	line will not use the column of line numbers (this is the default when
+	'compatible' isn't set).
+	The 'numberwidth' option can be used to set the room used for the line
+	number.
+	When a long, wrapped line doesn't start with the first character, '-'
+	characters are put before the number.
+	See |hl-LineNr| for the highlighting used for the number.
+	When setting this option, 'number' is reset.
+
 						*'remap'* *'noremap'*
 'remap'			boolean	(default on)
 			global
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index ceaef3b..075454e 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -818,6 +818,7 @@
 'quoteescape'	  'qe'	    escape characters used in a string
 'readonly'	  'ro'	    disallow writing the buffer
 'redrawtime'	  'rdt'     timeout for 'hlsearch' and |:match| highlighting
+'relativenumber'  'rnu'	    show relative line number in front of each line
 'remap'			    allow mappings to work recursively
 'report'		    threshold for reporting nr. of lines changed
 'restorescreen'   'rs'	    Win32: restore screen when exiting
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 08817c8..5cf202d 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -4203,7 +4203,7 @@
 		":s///c"
 							*hl-LineNr*
 LineNr		Line number for ":number" and ":#" commands, and when 'number'
-		option is set.
+		or 'relativenumber' option is set.
 							*hl-MatchParen*
 MatchParen	The character under the cursor or just before it, if it
 		is a paired bracket, and its match. |pi_paren.txt|
diff --git a/runtime/doc/tags b/runtime/doc/tags
index f2d177c..71611a7 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -559,6 +559,7 @@
 'noprompt'	options.txt	/*'noprompt'*
 'nopvw'	options.txt	/*'nopvw'*
 'noreadonly'	options.txt	/*'noreadonly'*
+'norelativenumber'	options.txt	/*'norelativenumber'*
 'noremap'	options.txt	/*'noremap'*
 'norestorescreen'	options.txt	/*'norestorescreen'*
 'norevins'	options.txt	/*'norevins'*
@@ -567,6 +568,7 @@
 'norightleftcmd'	options.txt	/*'norightleftcmd'*
 'norl'	options.txt	/*'norl'*
 'norlc'	options.txt	/*'norlc'*
+'nornu'	options.txt	/*'nornu'*
 'noro'	options.txt	/*'noro'*
 'nors'	options.txt	/*'nors'*
 'noru'	options.txt	/*'noru'*
@@ -708,6 +710,7 @@
 'readonly'	options.txt	/*'readonly'*
 'redraw'	vi_diff.txt	/*'redraw'*
 'redrawtime'	options.txt	/*'redrawtime'*
+'relativenumber'	options.txt	/*'relativenumber'*
 'remap'	options.txt	/*'remap'*
 'report'	options.txt	/*'report'*
 'restorescreen'	options.txt	/*'restorescreen'*
@@ -717,6 +720,7 @@
 'rightleftcmd'	options.txt	/*'rightleftcmd'*
 'rl'	options.txt	/*'rl'*
 'rlc'	options.txt	/*'rlc'*
+'rnu'	options.txt	/*'rnu'*
 'ro'	options.txt	/*'ro'*
 'rs'	options.txt	/*'rs'*
 'rtp'	options.txt	/*'rtp'*
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 2ae9b0e..5f9da93 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -643,8 +643,8 @@
 'maxmempattern'		maximum amount of memory to use for pattern matching
 'mkspellmem'		parameters for |:mkspell| memory use
 'mzquantum'		Time in msec to schedule MzScheme threads.
-'numberwidth'		Minimal width of the space used for the 'number'
-			option. (Emmanuel Renieris)
+'numberwidth'		Minimal width of the space used for the 'number' and
+			'relativenumber' option. (Emmanuel Renieris)
 'omnifunc'		The name of the function used for omni completion.
 'operatorfunc'		function to be called for |g@| operator
 'printmbcharset'	CJK character set to be used for :hardcopy