diff --git a/src/charset.c b/src/charset.c
index 34751e1..203a8fe 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -2002,6 +2002,7 @@
 	}
 	else
 	{
+	    // prevent a larg unsigned number to become negative
 	    if (un > VARNUM_MAX)
 		un = VARNUM_MAX;
 	    *nptr = (varnumber_T)un;
diff --git a/src/eval.c b/src/eval.c
index 0ac2dfb..7f90954 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -3091,12 +3091,8 @@
 		rettv->vval.v_number =
 				    rettv->vval.v_number << var2.vval.v_number;
 	    else
-	    {
 		rettv->vval.v_number =
-				    rettv->vval.v_number >> var2.vval.v_number;
-		// clear the topmost sign bit
-		rettv->vval.v_number &= ~((uvarnumber_T)1 << MAX_LSHIFT_BITS);
-	    }
+		      (uvarnumber_T)rettv->vval.v_number >> var2.vval.v_number;
 	}
 
 	clear_tv(&var2);
diff --git a/src/testdir/test_expr.vim b/src/testdir/test_expr.vim
index 24daeb6..ffac6df 100644
--- a/src/testdir/test_expr.vim
+++ b/src/testdir/test_expr.vim
@@ -958,6 +958,8 @@
     call assert_equal(0, 0 >> 4)
     call assert_equal(0, 999999 >> 100)
     call assert_equal(0, 999999 << 100)
+    call assert_equal(-1, -1 >> 0)
+    call assert_equal(-1, -1 << 0)
     VAR a = 8
     VAR b = 2
     call assert_equal(2, a >> b)
@@ -976,6 +978,15 @@
     for i in range(0, v:numbersize - 2)
         LET val = and(val, invert(1 << i))
     endfor
+    #" -1 has all the bits set
+    call assert_equal(-2, -1 << 1)
+    call assert_equal(-4, -1 << 2)
+    call assert_equal(-8, -1 << 3)
+    if v:numbersize == 64
+      call assert_equal(0x7fffffffffffffff, -1 >> 1)
+      call assert_equal(0x3fffffffffffffff, -1 >> 2)
+      call assert_equal(0x1fffffffffffffff, -1 >> 3)
+    endif
     call assert_equal(0, val)
     #" multiple operators
     call assert_equal(16, 1 << 2 << 2)
diff --git a/src/version.c b/src/version.c
index a6570a3..e8799ad 100644
--- a/src/version.c
+++ b/src/version.c
@@ -735,6 +735,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    5004,
+/**/
     5003,
 /**/
     5002,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index b4fd9d5..5410aa2 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -4096,12 +4096,7 @@
 			case EXPR_RSHIFT: if (arg2 > MAX_LSHIFT_BITS)
 					      res = 0;
 					  else
-					  {
-					      res = arg1 >> arg2;
-					      // clear the topmost sign bit
-					      res &= ~((uvarnumber_T)1
-							   << MAX_LSHIFT_BITS);
-					  }
+					      res = (uvarnumber_T)arg1 >> arg2;
 					  break;
 			default: break;
 		    }
diff --git a/src/vim9expr.c b/src/vim9expr.c
index c84be87..3e720d9 100644
--- a/src/vim9expr.c
+++ b/src/vim9expr.c
@@ -2719,11 +2719,8 @@
 	    else if (type == EXPR_LSHIFT)
 		tv1->vval.v_number = tv1->vval.v_number << tv2->vval.v_number;
 	    else
-	    {
-		tv1->vval.v_number = tv1->vval.v_number >> tv2->vval.v_number;
-		// clear the topmost sign bit
-		tv1->vval.v_number &= ~((uvarnumber_T)1 << MAX_LSHIFT_BITS);
-	    }
+		tv1->vval.v_number =
+			(uvarnumber_T)tv1->vval.v_number >> tv2->vval.v_number;
 	    clear_tv(tv2);
 	    --ppconst->pp_used;
 	}
