diff --git a/.gitignore b/.gitignore
index fd484a2..dc2f84e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -338,3 +338,4 @@
 /vim-8.2-2115.tar.bz2
 /vim-8.2-2143.tar.bz2
 /vim-8.2-2146.tar.bz2
+/vim-8.2-2311.tar.bz2
diff --git a/sources b/sources
index 8b65ba6..6dd2436 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (vim-8.2-2146.tar.bz2) = 555ae2f895da829c4249a5ce211d5ac69f704a10bec5e8b51059af236ac919e1a68aa8d5a48f125998715c8fd697f38686b37bb9beff0a0321d8ffb41a5649fd
+SHA512 (vim-8.2-2311.tar.bz2) = e5ef8cd059157343ef5e051fb64dfe97b503b1cbaf12566d93d68b1522f787c984ed579fd45b2ea0f2a14e898cc793f5de167ff7233c42f65cd710776ebd4840
diff --git a/vim-7.0-fixkeys.patch b/vim-7.0-fixkeys.patch
index 4092b3e..1d5bc4a 100644
--- a/vim-7.0-fixkeys.patch
+++ b/vim-7.0-fixkeys.patch
@@ -1,9 +1,9 @@
-diff -up vim81/src/term.c.fixkeys vim81/src/term.c
---- vim81/src/term.c.fixkeys	2019-12-12 09:00:20.685567074 +0100
-+++ vim81/src/term.c	2019-12-12 09:21:36.708769626 +0100
-@@ -957,14 +957,14 @@ static struct builtin_term builtin_termc
-     {K_XRIGHT,		IF_EB("\033[1;*C", ESC_STR "[1;*C")},
-     {K_XLEFT,		IF_EB("\033[1;*D", ESC_STR "[1;*D")},
+diff -up vim82/src/term.c.fixkeys vim82/src/term.c
+--- vim82/src/term.c.fixkeys	2021-01-08 10:12:59.191309539 +0100
++++ vim82/src/term.c	2021-01-08 10:18:05.410470981 +0100
+@@ -919,14 +919,14 @@ static struct builtin_term builtin_termc
+     {K_XRIGHT,		IF_EB("\033[@;*C", ESC_STR "[@;*C")},
+     {K_XLEFT,		IF_EB("\033[@;*D", ESC_STR "[@;*D")},
      // An extra set of function keys for vt100 mode
 -    {K_XF1,		IF_EB("\033O*P", ESC_STR "O*P")},
 -    {K_XF2,		IF_EB("\033O*Q", ESC_STR "O*Q")},
diff --git a/vim-ruby30ftbfs.patch b/vim-ruby30ftbfs.patch
new file mode 100644
index 0000000..d6106d2
--- /dev/null
+++ b/vim-ruby30ftbfs.patch
@@ -0,0 +1,18 @@
+diff --git a/src/if_ruby.c b/src/if_ruby.c
+index 9e5890214..a8c8379b6 100644
+--- a/src/if_ruby.c
++++ b/src/if_ruby.c
+@@ -612,11 +612,13 @@ rb_check_type_stub(VALUE obj, int t)
+ {
+     dll_rb_check_type(obj, t);
+ }
++#   if VIM_SIZEOF_INT < VIM_SIZEOF_LONG // 64 bits only
+     unsigned long
+ rb_num2uint_stub(VALUE x)
+ {
+     return dll_rb_num2uint(x);
+ }
++#   endif
+     void
+ ruby_malloc_size_overflow_stub(size_t x, size_t y)
+ {
diff --git a/vim.spec b/vim.spec
index f8a3511..19e24d6 100644
--- a/vim.spec
+++ b/vim.spec
@@ -1,4 +1,4 @@
-%define patchlevel 2146
+%define patchlevel 2311
 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1}
 %define WITH_SELINUX 1
 %endif
@@ -21,7 +21,7 @@ Summary: The VIM editor
 URL:     http://www.vim.org/
 Name: vim
 Version: %{baseversion}.%{patchlevel}
-Release: 2%{?dist}
+Release: 1%{?dist}
 License: Vim and MIT
 Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}-%{patchlevel}.tar.bz2
 Source1: vim.sh
@@ -63,6 +63,7 @@ Patch3016: vim-8.0-copy-paste.patch
 Patch3017: vim-python3-tests.patch
 # fips warning
 Patch3018: vim-crypto-warning.patch
+Patch3019: vim-ruby30ftbfs.patch
 
 # gcc is no longer in buildroot by default
 BuildRequires: gcc
@@ -270,6 +271,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk
 %patch3016 -p1 -b .copypaste
 %patch3017 -p1 -b .python-tests
 %patch3018 -p1
+%patch3019 -p1 -b .ruby30
 
 %build
 cd src
@@ -827,6 +829,9 @@ touch %{buildroot}/%{_datadir}/%{name}/vimfiles/doc/tags
 %config(noreplace) %{_sysconfdir}/profile.d/vim-default-editor.*
 
 %changelog
+* Fri Jan 08 2021 Zdenek Dohnal <zdohnal@redhat.com> - 2:8.2.2311-1
+- patchlevel 2311
+
 * Fri Dec 18 2020 Zdenek Dohnal <zdohnal@redhat.com> - 2:8.2.2146-2
 - install vim-minimal profiles under different name to avoid future conflicts
 - remove old conflicts