updated for version 7.4.634
Problem:    Marks are not restored after redo + undo.
Solution:   Fix the way marks are restored. (Olaf Dabrunz)
diff --git a/src/testdir/Make_amiga.mak b/src/testdir/Make_amiga.mak
index 0e9898b..2567d52 100644
--- a/src/testdir/Make_amiga.mak
+++ b/src/testdir/Make_amiga.mak
@@ -48,6 +48,7 @@
 		test_listlbr.out \
 		test_listlbr_utf8.out \
 		test_mapping.out \
+		test_marks.out \
 		test_nested_function.out \
 		test_options.out \
 		test_qf_title.out \
@@ -188,6 +189,7 @@
 test_listlbr.out: test_listlbr.in
 test_listlbr_utf8.out: test_listlbr_utf8.in
 test_mapping.out: test_mapping.in
+test_marks.out: test_marks.in
 test_nested_function.out: test_nested_function.in
 test_options.out: test_options.in
 test_qf_title.out: test_qf_title.in
diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak
index 1ba4407..51574de 100644
--- a/src/testdir/Make_dos.mak
+++ b/src/testdir/Make_dos.mak
@@ -47,6 +47,7 @@
 		test_listlbr.out \
 		test_listlbr_utf8.out \
 		test_mapping.out \
+		test_marks.out \
 		test_nested_function.out \
 		test_options.out \
 		test_qf_title.out \
diff --git a/src/testdir/Make_ming.mak b/src/testdir/Make_ming.mak
index 51049fb..a907fb1 100644
--- a/src/testdir/Make_ming.mak
+++ b/src/testdir/Make_ming.mak
@@ -69,6 +69,7 @@
 		test_listlbr.out \
 		test_listlbr_utf8.out \
 		test_mapping.out \
+		test_marks.out \
 		test_nested_function.out \
 		test_options.out \
 		test_qf_title.out \
diff --git a/src/testdir/Make_os2.mak b/src/testdir/Make_os2.mak
index 0b3ce26..bab000d 100644
--- a/src/testdir/Make_os2.mak
+++ b/src/testdir/Make_os2.mak
@@ -49,6 +49,7 @@
 		test_listlbr.out \
 		test_listlbr_utf8.out \
 		test_mapping.out \
+		test_marks.out \
 		test_nested_function.out \
 		test_options.out \
 		test_qf_title.out \
diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms
index f57bf55..ab1e529 100644
--- a/src/testdir/Make_vms.mms
+++ b/src/testdir/Make_vms.mms
@@ -108,6 +108,7 @@
 	 test_listlbr.out \
 	 test_listlbr_utf8.out \
 	 test_mapping.out \
+	 test_marks.out \
 	 test_nested_function.out \
 	 test_options.out \
 	 test_qf_title.out \
diff --git a/src/testdir/Makefile b/src/testdir/Makefile
index 671c30d..626c81e 100644
--- a/src/testdir/Makefile
+++ b/src/testdir/Makefile
@@ -45,6 +45,7 @@
 		test_listlbr.out \
 		test_listlbr_utf8.out \
 		test_mapping.out \
+		test_marks.out \
 		test_nested_function.out \
 		test_options.out \
 		test_qf_title.out \
diff --git a/src/undo.c b/src/undo.c
index 24dcf05..034d16c 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -2847,11 +2847,14 @@
      * restore marks from before undo/redo
      */
     for (i = 0; i < NMARKS; ++i)
+    {
 	if (curhead->uh_namedm[i].lnum != 0)
-	{
 	    curbuf->b_namedm[i] = curhead->uh_namedm[i];
+	if (namedm[i].lnum != 0)
 	    curhead->uh_namedm[i] = namedm[i];
-	}
+	else
+	    curhead->uh_namedm[i].lnum = 0;
+    }
     if (curhead->uh_visual.vi_start.lnum != 0)
     {
 	curbuf->b_visual = curhead->uh_visual;
diff --git a/src/version.c b/src/version.c
index d2afbf5..3d493b0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    634,
+/**/
     633,
 /**/
     632,