updated for version 7.3.856
Problem:    When calling system() multi-byte clipboard contents is garbled.
Solution:   Save and restore the clipboard contents.  (Yukihiro Nakadaira)
diff --git a/src/ops.c b/src/ops.c
index f3a26da..2ab9044 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -1017,6 +1017,19 @@
     may_set_selection();
 # endif
 }
+
+    void
+free_register(reg)
+    void	*reg;
+{
+    struct yankreg tmp;
+
+    tmp = *y_current;
+    *y_current = *(struct yankreg *)reg;
+    free_yank_all();
+    vim_free(reg);
+    *y_current = tmp;
+}
 #endif
 
 #if defined(FEAT_MOUSE) || defined(PROTO)