diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index b011342..20ad602 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -278,5 +278,52 @@
   assert_notmatch('JUMP', instr)
 enddef
 
+def WithLambda(): string
+  let F = {a -> "X" .. a .. "X"}
+  return F("x")
+enddef
+
+def Test_compile_lambda()
+  assert_equal("XxX", WithLambda())
+  let instr = execute('disassemble WithLambda')
+  assert_match('WithLambda.*'
+        \ .. 'let F = {a -> "X" .. a .. "X"}.*'
+        \ .. ' FUNCREF <lambda>\d\+.*'
+        \ .. 'PUSHS "x".*'
+        \ .. ' LOAD $0.*'
+        \ .. ' PCALL (argc 1).*'
+        \ .. ' CHECKTYPE string stack\[-1].*'
+        \, instr)
+enddef
+
+def AndOr(arg): string
+  if arg == 1 && arg != 2 || arg == 4
+    return 'yes'
+  endif
+  return 'no'
+enddef
+
+def Test_compile_and_or()
+  assert_equal("yes", AndOr(1))
+  assert_equal("no", AndOr(2))
+  assert_equal("yes", AndOr(4))
+  let instr = execute('disassemble AndOr')
+  assert_match('AndOr.*'
+        \ .. 'if arg == 1 && arg != 2 || arg == 4.*'
+        \ .. '\d LOAD arg\[-1].*'
+        \ .. '\d PUSHNR 1.*'
+        \ .. '\d COMPAREANY ==.*'
+        \ .. '\d JUMP_AND_KEEP_IF_FALSE -> \d\+.*'
+        \ .. '\d LOAD arg\[-1].*'
+        \ .. '\d PUSHNR 2.*'
+        \ .. '\d COMPAREANY !=.*'
+        \ .. '\d JUMP_AND_KEEP_IF_TRUE -> \d\+.*'
+        \ .. '\d LOAD arg\[-1].*'
+        \ .. '\d PUSHNR 4.*'
+        \ .. '\d COMPAREANY ==.*'
+        \ .. '\d JUMP_IF_FALSE -> \d\+.*'
+        \, instr)
+enddef
+
 
 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
diff --git a/src/version.c b/src/version.c
index 3cb8bc2..9b5682c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    225,
+/**/
     224,
 /**/
     223,
diff --git a/src/vim9.h b/src/vim9.h
index a9f0710..a977965 100644
--- a/src/vim9.h
+++ b/src/vim9.h
@@ -130,7 +130,6 @@
 
 typedef enum {
     JUMP_ALWAYS,
-    JUMP_IF_TRUE,		// pop and jump if true
     JUMP_IF_FALSE,		// pop and jump if false
     JUMP_AND_KEEP_IF_TRUE,	// jump if top of stack is true, drop if not
     JUMP_AND_KEEP_IF_FALSE,	// jump if top of stack is false, drop if not
diff --git a/src/vim9execute.c b/src/vim9execute.c
index d403201..1b45bf9 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -1001,8 +1001,7 @@
 			if (when == JUMP_IF_FALSE
 					     || when == JUMP_AND_KEEP_IF_FALSE)
 			    jump = !jump;
-			if (when == JUMP_IF_FALSE || when == JUMP_IF_TRUE
-								      || !jump)
+			if (when == JUMP_IF_FALSE || !jump)
 			{
 			    // drop the value from the stack
 			    clear_tv(tv);
@@ -1583,15 +1582,14 @@
     return ret;
 }
 
-#define DISASSEMBLE 1
-
 /*
  * ":dissassemble".
+ * We don't really need this at runtime, but we do have tests that require it,
+ * so always include this.
  */
     void
 ex_disassemble(exarg_T *eap)
 {
-#ifdef DISASSEMBLE
     char_u	*fname;
     ufunc_T	*ufunc;
     dfunc_T	*dfunc;
@@ -1840,9 +1838,6 @@
 			case JUMP_ALWAYS:
 			    when = "JUMP";
 			    break;
-			case JUMP_IF_TRUE:
-			    when = "JUMP_IF_TRUE";
-			    break;
 			case JUMP_AND_KEEP_IF_TRUE:
 			    when = "JUMP_AND_KEEP_IF_TRUE";
 			    break;
@@ -1997,7 +1992,6 @@
 	    case ISN_DROP: smsg("%4d DROP", current); break;
 	}
     }
-#endif
 }
 
 /*
