diff --git a/src/channel.c b/src/channel.c
index e66be18..1f7ad61 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -1285,19 +1285,7 @@
 			&rettv, 2, argv, 0L, 0L, &dummy, TRUE, partial, NULL);
     clear_tv(&rettv);
 
-    /* If an echo command was used the cursor needs to be put back where
-     * it belongs. If highlighting was changed a redraw is needed. */
-    update_screen(0);
-    setcursor();
-    cursor_on();
-    out_flush();
-#ifdef FEAT_GUI
-    if (gui.in_use)
-    {
-	gui_update_cursor(TRUE, FALSE);
-	gui_mch_flush();
-    }
-#endif
+    redraw_after_callback();
 }
 
 /*
@@ -3024,28 +3012,6 @@
     return channel->ch_part[part].ch_timeout;
 }
 
-/*
- * Get a callback from "arg".  It can be a Funcref or a function name.
- * When "arg" is zero return an empty string.
- * Return NULL for an invalid argument.
- */
-    static char_u *
-get_callback(typval_T *arg, partial_T **pp)
-{
-    if (arg->v_type == VAR_PARTIAL && arg->vval.v_partial != NULL)
-    {
-	*pp = arg->vval.v_partial;
-	return (*pp)->pt_name;
-    }
-    *pp = NULL;
-    if (arg->v_type == VAR_FUNC || arg->v_type == VAR_STRING)
-	return arg->vval.v_string;
-    if (arg->v_type == VAR_NUMBER && arg->vval.v_number == 0)
-	return (char_u *)"";
-    EMSG(_("E921: Invalid callback argument"));
-    return NULL;
-}
-
     static int
 handle_mode(typval_T *item, jobopt_T *opt, ch_mode_T *modep, int jo)
 {
diff --git a/src/version.c b/src/version.c
index 2d03316..e4c3412 100644
--- a/src/version.c
+++ b/src/version.c
@@ -749,6 +749,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1579,
+/**/
     1578,
 /**/
     1577,
