patch 7.4.1565
Problem:    Crash when assert_equal() runs into a NULL string.
Solution:   Check for NULL. (Dominique) Add a test.
diff --git a/src/eval.c b/src/eval.c
index eadb802..425ab68 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -9240,6 +9240,12 @@
     char_u  *p;
     char_u  buf[NUMBUFLEN];
 
+    if (str == NULL)
+    {
+	ga_concat(gap, (char_u *)"NULL");
+	return;
+    }
+
     for (p = str; *p != NUL; ++p)
 	switch (*p)
 	{
diff --git a/src/testdir/test_assert.vim b/src/testdir/test_assert.vim
index 6d2f800..df2636d 100644
--- a/src/testdir/test_assert.vim
+++ b/src/testdir/test_assert.vim
@@ -48,6 +48,21 @@
   call assert_equal(type([]), type(verrors))
 endfunc
 
+func Test_compare_fail()
+  let s:v = {}          
+  let s:x = {"a": s:v} 
+  let s:v["b"] = s:x   
+  let s:w = {"c": s:x, "d": ''}
+  try
+    call assert_equal(s:w, '')
+  catch
+    call assert_exception('E724:')
+    call assert_true(v:errors[0] =~ "Expected NULL but got ''")
+    call remove(v:errors, 0)
+  endtry
+endfunc
+
+
 func Test_user_is_happy()
   smile
   sleep 300m
diff --git a/src/version.c b/src/version.c
index 3cab689..59c7714 100644
--- a/src/version.c
+++ b/src/version.c
@@ -744,6 +744,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1565,
+/**/
     1564,
 /**/
     1563,