diff --git a/packages/mediacenter/kodi/patches/kodi-999.41-KEY_CONFIG.patch b/packages/mediacenter/kodi/patches/kodi-999.41-KEY_CONFIG.patch
new file mode 100644
index 0000000000..c366d6fc55
--- /dev/null
+++ b/packages/mediacenter/kodi/patches/kodi-999.41-KEY_CONFIG.patch
@@ -0,0 +1,55 @@
+diff -Naur kodi-15.2-02e7013.orig/system/keymaps/keyboard.xml kodi-15.2-02e7013/system/keymaps/keyboard.xml
+--- kodi-15.2-02e7013.orig/system/keymaps/keyboard.xml 2015-10-29 12:37:08.058499004 -0700
++++ kodi-15.2-02e7013/system/keymaps/keyboard.xml 2015-10-29 12:45:00.594628676 -0700
+@@ -117,6 +117,7 @@
+
+ ActivateWindow(Favourites)
+ ActivateWindow(Favourites)
++ ActivateWindow(Settings)
+ ActivateWindow(Home)
+ ActivateWindow(Home)
+ Mute
+diff -Naur kodi-15.2-02e7013.orig/xbmc/input/linux/LinuxInputDevices.cpp kodi-15.2-02e7013/xbmc/input/linux/LinuxInputDevices.cpp
+--- kodi-15.2-02e7013.orig/xbmc/input/linux/LinuxInputDevices.cpp 2015-10-29 12:37:08.081498954 -0700
++++ kodi-15.2-02e7013/xbmc/input/linux/LinuxInputDevices.cpp 2015-10-29 12:41:16.155311681 -0700
+@@ -267,6 +267,7 @@
+ { KEY_SEARCH , XBMCK_BROWSER_SEARCH},
+ { KEY_FILE , XBMCK_LAUNCH_FILE_BROWSER},
+ { KEY_SELECT , XBMCK_RETURN },
++ { KEY_CONFIG , XBMCK_CONFIG },
+ // The Little Black Box Remote Additions
+ { 384 , XBMCK_LEFT }, // Red
+ { 378 , XBMCK_RIGHT }, // Green
+diff -Naur kodi-15.2-02e7013.orig/xbmc/input/XBMC_keysym.h kodi-15.2-02e7013/xbmc/input/XBMC_keysym.h
+--- kodi-15.2-02e7013.orig/xbmc/input/XBMC_keysym.h 2015-10-29 12:37:08.058499004 -0700
++++ kodi-15.2-02e7013/xbmc/input/XBMC_keysym.h 2015-10-29 12:47:22.085956459 -0700
+@@ -228,6 +228,7 @@
+ XBMCK_TEXT = 0x14c,
+ XBMCK_FAVORITES = 0x14d,
+ XBMCK_HOMEPAGE = 0x14e,
++ XBMCK_CONFIG = 0x14f,
+
+ // Add any other keys here
+
+diff -Naur kodi-15.2-02e7013.orig/xbmc/input/XBMC_keytable.cpp kodi-15.2-02e7013/xbmc/input/XBMC_keytable.cpp
+--- kodi-15.2-02e7013.orig/xbmc/input/XBMC_keytable.cpp 2015-10-29 12:37:08.059499002 -0700
++++ kodi-15.2-02e7013/xbmc/input/XBMC_keytable.cpp 2015-10-29 12:48:24.243691840 -0700
+@@ -242,6 +242,7 @@
+ , { XBMCK_TEXT, 0, 0, XBMCVK_TEXT, "text" }
+ , { XBMCK_FAVORITES, 0, 0, XBMCVK_FAVORITES, "favorites" }
+ , { XBMCK_HOMEPAGE , 0, 0, XBMCVK_HOMEPAGE, "homepage" }
++, { XBMCK_CONFIG, 0, 0, XBMCVK_CONFIG, "config" }
+ };
+
+ static int XBMCKeyTableSize = sizeof(XBMCKeyTable)/sizeof(XBMCKEYTABLE);
+diff -Naur kodi-15.2-02e7013.orig/xbmc/input/XBMC_vkeys.h kodi-15.2-02e7013/xbmc/input/XBMC_vkeys.h
+--- kodi-15.2-02e7013.orig/xbmc/input/XBMC_vkeys.h 2015-10-29 12:37:08.059499002 -0700
++++ kodi-15.2-02e7013/xbmc/input/XBMC_vkeys.h 2015-10-29 12:49:07.284549633 -0700
+@@ -220,6 +220,7 @@
+ XBMCVK_TEXT = 0xE8,
+ XBMCVK_FAVORITES = 0xE9,
+ XBMCVK_HOMEPAGE = 0xEA,
++ XBMCVK_CONFIG = 0xEB,
+
+ XBMCVK_LAST = 0xFF
+ } XBMCVKey;
diff --git a/projects/WeTek_Play/patches/kodi/0018-aml-Fix-stuttering-during-a-playback-of-a-video-with.patch b/projects/WeTek_Play/patches/kodi/0018-aml-Fix-stuttering-during-a-playback-of-a-video-with.patch
new file mode 100644
index 0000000000..21415b4ead
--- /dev/null
+++ b/projects/WeTek_Play/patches/kodi/0018-aml-Fix-stuttering-during-a-playback-of-a-video-with.patch
@@ -0,0 +1,26 @@
+From 7b1c6ca4cb5bf3310cbfe3b007063439be301b6b Mon Sep 17 00:00:00 2001
+From: Alex Deryskyba
+Date: Mon, 2 Mar 2015 09:48:14 +0100
+Subject: [PATCH 18/26] [aml] Fix stuttering during a playback of a video with
+ 23.976 FPS
+
+---
+ xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
+index bf4c958..8d49de8 100644
+--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
+@@ -1932,7 +1932,7 @@ void CAMLCodec::Process()
+
+ double error = app_pts - (double)pts_video/PTS_FREQ;
+ double abs_error = fabs(error);
+- if (abs_error > 0.125)
++ if (abs_error > 0)
+ {
+ //CLog::Log(LOGDEBUG, "CAMLCodec::Process pts diff = %f", error);
+ if (abs_error > 0.150)
+--
+1.7.10.4
+
diff --git a/projects/WeTek_Play/patches/kodi/1012-hide-meaningless-skips-from-users.patch b/projects/WeTek_Play/patches/kodi/1012-hide-meaningless-skips-from-users.patch
new file mode 100644
index 0000000000..cb240a4801
--- /dev/null
+++ b/projects/WeTek_Play/patches/kodi/1012-hide-meaningless-skips-from-users.patch
@@ -0,0 +1,23 @@
+From a19578679f63520b0d8e9f589b82699076aff6ed Mon Sep 17 00:00:00 2001
+From: "Chris \"Koying\" Browet"
+Date: Fri, 19 Dec 2014 12:30:04 +0100
+Subject: [PATCH] FIX: [renderer] hide meaningless skips from users
+
+---
+ xbmc/cores/VideoRenderers/RenderManager.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/xbmc/cores/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoRenderers/RenderManager.cpp
+index 7f43949..01327f5 100644
+--- a/xbmc/cores/VideoRenderers/RenderManager.cpp
++++ b/xbmc/cores/VideoRenderers/RenderManager.cpp
+@@ -1198,7 +1198,8 @@ void CXBMCRenderManager::PrepareNextRender()
+ while(m_queued.front() != idx)
+ {
+ requeue(m_discard, m_queued);
+- m_QueueSkip++;
++ if (m_format != RENDER_FMT_BYPASS) // skips scares users ;)
++ m_QueueSkip++;
+ }
+
+ m_presentstep = PRESENT_FLIP;
diff --git a/projects/WeTek_Play/patches/kodi/1013-avoid-decoder-being-deadlocked.patch b/projects/WeTek_Play/patches/kodi/1013-avoid-decoder-being-deadlocked.patch
new file mode 100644
index 0000000000..466a0a96eb
--- /dev/null
+++ b/projects/WeTek_Play/patches/kodi/1013-avoid-decoder-being-deadlocked.patch
@@ -0,0 +1,36 @@
+From 6aab0376e7a4afdf5fbbbfa6c5394d302fb35a11 Mon Sep 17 00:00:00 2001
+From: Chris Browet
+Date: Mon, 18 May 2015 14:28:02 +0200
+Subject: [PATCH] FIX: [aml] avoid decoder being deadlocked
+
+---
+ xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
+index 981ddd0..7046be3 100644
+--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
+@@ -1855,7 +1855,8 @@ int CAMLCodec::Decode(uint8_t *pData, size_t iSize, double dts, double pts)
+ // loop until we write all into codec, am_pkt.isvalid
+ // will get set to zero once everything is consumed.
+ // PLAYER_SUCCESS means all is ok, not all bytes were written.
+- while (am_private->am_pkt.isvalid)
++ int loop = 0;
++ while (am_private->am_pkt.isvalid && loop < 100)
+ {
+ // abort on any errors.
+ if (write_av_packet(am_private, &am_private->am_pkt) != PLAYER_SUCCESS)
+@@ -1863,6 +1864,12 @@ int CAMLCodec::Decode(uint8_t *pData, size_t iSize, double dts, double pts)
+
+ if (am_private->am_pkt.isvalid)
+ CLog::Log(LOGDEBUG, "CAMLCodec::Decode: write_av_packet looping");
++ loop++;
++ }
++ if (loop == 100)
++ {
++ // Decoder got stuck; Reset
++ Reset();
+ }
+ if (!m_dll_has_video_delay)
+ {