updated for version 7.3.516
Problem:    extend(o, o) may crash Vim.
Solution:   Fix crash and add test. (Thinca and Hirohito Higashi)
diff --git a/src/eval.c b/src/eval.c
index fa9966e..9a81b4f 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -10191,7 +10191,7 @@
 			EMSG2(_("E737: Key already exists: %s"), hi2->hi_key);
 			break;
 		    }
-		    else if (*action == 'f')
+		    else if (*action == 'f' && HI2DI(hi2) != di1)
 		    {
 			clear_tv(&di1->di_tv);
 			copy_tv(&HI2DI(hi2)->di_tv, &di1->di_tv);