diff --git a/src/mbyte.c b/src/mbyte.c
index 61d83cf..e0b2498 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -5079,6 +5079,7 @@
 	{
 	    xim_set_focus(gui.in_focus);
 
+#  ifdef FEAT_EVAL
 	    if (p_imaf[0] != NUL)
 	    {
 		char_u *argv[1];
@@ -5089,7 +5090,9 @@
 		    argv[0] = (char_u *)"0";
 		(void)call_func_retnr(p_imaf, 1, argv, FALSE);
 	    }
-	    else if (im_activatekey_keyval != GDK_VoidSymbol)
+	    else
+#  endif
+		if (im_activatekey_keyval != GDK_VoidSymbol)
 	    {
 		if (im_is_active)
 		{
@@ -5249,12 +5252,17 @@
     int
 im_get_status(void)
 {
+#  ifdef FEAT_EVAL
     if (p_imsf[0] != NUL)
     {
 	int is_active;
 
 	/* FIXME: Don't execute user function in unsafe situation. */
-	if (exiting || is_autocmd_blocked())
+	if (exiting
+#   ifdef FEAT_AUTOCMD
+		|| is_autocmd_blocked()
+#   endif
+		)
 	    return FALSE;
 	/* FIXME: :py print 'xxx' is shown duplicate result.
 	 * Use silent to avoid it. */
@@ -5263,6 +5271,7 @@
 	--msg_silent;
 	return (is_active > 0);
     }
+#  endif
     return im_is_active;
 }
 
diff --git a/src/version.c b/src/version.c
index b0855c1..fe0ce58 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1256,
+/**/
     1255,
 /**/
     1254,
diff --git a/src/window.c b/src/window.c
index d7d45e0..54ab200 100644
--- a/src/window.c
+++ b/src/window.c
@@ -53,10 +53,10 @@
 static void frame_append __ARGS((frame_T *after, frame_T *frp));
 static void frame_insert __ARGS((frame_T *before, frame_T *frp));
 static void frame_remove __ARGS((frame_T *frp));
-#ifdef FEAT_VERTSPLIT
+# ifdef FEAT_VERTSPLIT
 static void win_goto_ver __ARGS((int up, long count));
 static void win_goto_hor __ARGS((int left, long count));
-#endif
+# endif
 static void frame_add_height __ARGS((frame_T *frp, int n));
 static void last_status_rec __ARGS((frame_T *fr, int statusline));
 
@@ -6928,6 +6928,7 @@
 }
 #endif
 
+#ifdef FEAT_WINDOWS
 /*
  * Return TRUE if "topfrp" and its children are at the right height.
  */
@@ -6948,6 +6949,7 @@
 
     return TRUE;
 }
+#endif
 
 #ifdef FEAT_VERTSPLIT
 /*
