diff --git a/package/kernel/lantiq/ltq-vdsl-mei/Makefile b/package/kernel/lantiq/ltq-vdsl-mei/Makefile
index 3a2d572..5ff1321 100644
--- a/package/kernel/lantiq/ltq-vdsl-mei/Makefile
+++ b/package/kernel/lantiq/ltq-vdsl-mei/Makefile
@@ -1,4 +1,5 @@
 # Copyright (C) 2012 OpenWrt.org
+# Copyright (C) 2015 Lantiq Beteiligungs GmbH & Co KG.
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -7,14 +8,14 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=ltq-vdsl-vr9-mei
-PKG_VERSION:=1.4.8.4
+PKG_VERSION:=1.4.8.5
 PKG_RELEASE:=1
 
 PKG_BASE_NAME:=drv_mei_cpe
 PKG_SOURCE:=$(PKG_BASE_NAME)-$(PKG_VERSION).tar.gz
 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_BASE_NAME)-$(PKG_VERSION)
-PKG_SOURCE_URL:=https://github.com/xdarklight/$(PKG_BASE_NAME)/archive/v$(PKG_VERSION)
-PKG_MD5SUM:=30570722dc7f19ff2f0228838043f2a2
+PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
+PKG_MD5SUM:=78bf61dbc3421123c6716b874a930759
 PKG_FIXUP:=autoreconf
 PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
 PKG_USE_MIPS16:=0
@@ -49,9 +50,6 @@ define Package/ltq-vdsl-mei_test/description
 	for test and development purposes.
 endef
 
-
-#DEBUG=-DDEBUG_PRINT=1
-
 MAKE_FLAGS += \
 	SHELL="$(BASH)"
 
@@ -64,7 +62,7 @@ CONFIGURE_ARGS += \
 	--enable-error_print \
 	--enable-ifxos-include="-I$(STAGING_DIR)/usr/include/ifxos/" \
 	--enable-ifxos-library="-L$(STAGING_DIR)/usr/lib" \
-	--enable-add_drv_cflags="$(DEBUG) -DMEI_DRV_ATM_PTM_INTERFACE_ENABLE=1 -DMEI_EXPORT_INTERNAL_API=1 -DMEI_SUPPORT_DSM=0 -fno-pic -mno-abicalls -mlong-calls -O2 -g0" \
+	--enable-add_drv_cflags="-DMEI_SUPPORT_DSM=0 -DMEI_DRV_ATM_PTM_INTERFACE_ENABLE=1 -fno-pic -mlong-calls -O2 -g0" \
 	--enable-linux-26 \
 	--enable-kernelbuild="$(LINUX_DIR)" \
 	--enable-drv_test_appl=yes \
diff --git a/package/kernel/lantiq/ltq-vdsl-mei/patches/010-warnings.patch b/package/kernel/lantiq/ltq-vdsl-mei/patches/010-warnings.patch
new file mode 100644
index 0000000..a3c7dfe
--- /dev/null
+++ b/package/kernel/lantiq/ltq-vdsl-mei/patches/010-warnings.patch
@@ -0,0 +1,26 @@
+--- a/src/drv_mei_cpe_api.h
++++ b/src/drv_mei_cpe_api.h
+@@ -937,7 +937,7 @@ typedef struct MEI_dev_s
+ #if ( defined(MEI_DRVOS_HAVE_DRV_SELECT) && (MEI_DRVOS_HAVE_DRV_SELECT == 1) )
+    /** support for select() */
+    IFX_boolean_t         bNfcNeedWakeUp;
+-   MEI_DRVOS_event_t     selNfcWakeupList;
++   IFXOS_drvSelectQueue_t     selNfcWakeupList;
+ #endif
+ 
+    /** list of all open instances which can receive NFC's, EVT's ALM's */
+--- a/src/drv_mei_cpe_linux.c
++++ b/src/drv_mei_cpe_linux.c
+@@ -1220,9 +1220,9 @@ static unsigned int MEI_Poll (struct fil
+    }
+ 
+    MEI_DRVOS_SelectQueueAddTask(
+-               (MEI_DRVOS_select_OSArg_t*) filp,
+-               (MEI_DRVOS_event_t*)        &(pMeiDev->selNfcWakeupList),
+-               (MEI_DRVOS_selectTable_t*)  wait);
++               filp,
++               &(pMeiDev->selNfcWakeupList),
++               wait);
+ 
+    if (pDynNfc->pRecvDataCntrl[pDynNfc->rdIdxRd].bufCtrl != MEI_RECV_BUF_CTRL_FREE)      /* buffer in use */
+    {
diff --git a/package/kernel/lantiq/ltq-vdsl-mei/patches/100-compat.patch b/package/kernel/lantiq/ltq-vdsl-mei/patches/100-compat.patch
index 0657f66..0273d19 100644
--- a/package/kernel/lantiq/ltq-vdsl-mei/patches/100-compat.patch
+++ b/package/kernel/lantiq/ltq-vdsl-mei/patches/100-compat.patch
@@ -43,7 +43,7 @@
  #ifdef MODULE
  #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0))
  MODULE_PARM(major_number, "b");
-@@ -1783,7 +1787,9 @@ static int __init MEI_module_init (void)
+@@ -1798,7 +1802,9 @@ static int __init MEI_module_init (void)
        return (result);
     }
  
@@ -53,7 +53,7 @@
  
     return 0;
  }
-@@ -1907,6 +1913,10 @@ static void MEI_module_exit (void)
+@@ -1922,6 +1928,10 @@ static void MEI_module_exit (void)
  
  #else
     unregister_chrdev ( major_number , DRV_MEI_NAME );
@@ -64,7 +64,7 @@
  #endif
  
  #if CONFIG_PROC_FS
-@@ -1963,7 +1973,9 @@ static void MEI_module_exit (void)
+@@ -1978,7 +1988,9 @@ static void MEI_module_exit (void)
              ("MEI_DRV: Chipset Basic Exit failed" MEI_DRV_CRLF));
     }
  
@@ -74,7 +74,7 @@
  
     /* touch one time this variable to avoid that the linker will remove it */
     debug_level = MEI_DRV_PRN_LEVEL_OFF;
-@@ -2080,6 +2092,10 @@ static int MEI_InitModuleRegCharDev(cons
+@@ -2095,6 +2107,10 @@ static int MEI_InitModuleRegCharDev(cons
              ("Using major number %d" MEI_DRV_CRLF, major_number));
     }
  
@@ -85,7 +85,7 @@
     return 0;
  #endif      /* CONFIG_DEVFS_FS */
  }
-@@ -2120,21 +2136,32 @@ static int MEI_InitModuleBasics(void)
+@@ -2135,21 +2151,32 @@ static int MEI_InitModuleBasics(void)
  }
  
  #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0))
@@ -118,7 +118,7 @@
  
     return 0;
  }
-@@ -2454,11 +2481,15 @@ IFX_int32_t MEI_IoctlInitDevice(
+@@ -2469,11 +2496,15 @@ IFX_int32_t MEI_IoctlInitDevice(
              pMeiDev->eModePoll = e_MEI_DEV_ACCESS_MODE_IRQ;
              pMeiDev->intMask   = ME_ARC2ME_INTERRUPT_UNMASK_ALL;
  
@@ -146,7 +146,7 @@
 +int (*ifx_mei_atm_showtime_enter)(struct port_cell_info *, void *) = NULL;
 +int (*ifx_mei_atm_showtime_exit)(void) = NULL;
 +
-+ltq_ifx_mei_atm_showtime_enter_compat(IFX_uint8_t dslLineNum,
++int ltq_ifx_mei_atm_showtime_enter_compat(IFX_uint8_t dslLineNum,
 +				      struct port_cell_info *cellInfo,
 +				      void *xdata) {
 +	if (ifx_mei_atm_showtime_enter)
@@ -155,7 +155,7 @@
 +	return -e_MEI_ERR_OP_FAILED;
 +}
 +
-+ltq_ifx_mei_atm_showtime_exit_compat(IFX_uint8_t dslLineNum) {
++int ltq_ifx_mei_atm_showtime_exit_compat(IFX_uint8_t dslLineNum) {
 +	if (ifx_mei_atm_showtime_exit)
 +		return ifx_mei_atm_showtime_exit();
 +
@@ -198,11 +198,12 @@
  
  #if (MEI_EXPORT_INTERNAL_API == 1) && (MEI_DRV_ATM_PTM_INTERFACE_ENABLE == 1)
  
-@@ -42,8 +41,20 @@ extern IFX_int32_t MEI_InternalXtmSwhowt
+@@ -42,8 +41,21 @@ extern IFX_int32_t MEI_InternalXtmSwhowt
                                MEI_DYN_CNTRL_T        *pMeiDynCntrl,
                                MEI_XTM_ShowtimeExit_t *pArgXtm);
  
 +#if 1
++#include <lantiq_atm.h>
 +typedef enum {
 +	LTQ_MEI_SHOWTIME_ENTER,
 +	LTQ_MEI_SHOWTIME_EXIT
@@ -221,9 +222,9 @@
                                const unsigned char line_idx,
 --- a/src/drv_mei_cpe_device_vrx.c
 +++ b/src/drv_mei_cpe_device_vrx.c
-@@ -27,13 +27,6 @@
- #include "drv_mei_cpe_mei_interface.h"
+@@ -28,13 +28,6 @@
  #include "drv_mei_cpe_api.h"
+ #include "drv_mei_cpe_mei_vrx.h"
  
 -#if defined(LINUX)
 -#  if (LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0))
@@ -235,7 +236,7 @@
  
  IFX_int32_t MEI_GPIntProcess(MEI_MeiRegVal_t processInt, MEI_DEV_T *pMeiDev)
  {
-@@ -81,6 +74,7 @@ IFX_int32_t MEI_GetChipInfo(MEI_DEV_T *p
+@@ -82,6 +75,7 @@ IFX_int32_t MEI_GetChipInfo(MEI_DEV_T *p
  */
  IFX_int32_t MEI_VR10_PcieEntitiesCheck(IFX_uint8_t nEntityNum)
  {
@@ -243,7 +244,7 @@
     IFX_uint32_t pcie_entitiesNum;
  
     /* get information from pcie driver */
-@@ -101,6 +95,9 @@ IFX_int32_t MEI_VR10_PcieEntitiesCheck(I
+@@ -102,6 +96,9 @@ IFX_int32_t MEI_VR10_PcieEntitiesCheck(I
     }
  
     return IFX_SUCCESS;
@@ -253,7 +254,7 @@
  }
  
  /**
-@@ -115,6 +112,7 @@ IFX_int32_t MEI_VR10_PcieEntitiesCheck(I
+@@ -116,6 +113,7 @@ IFX_int32_t MEI_VR10_PcieEntitiesCheck(I
  */
  IFX_int32_t MEI_VR10_PcieEntityInit(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
  {
@@ -261,7 +262,7 @@
     IFX_uint8_t entityNum;
     ifx_pcie_ep_dev_t MEI_pcie_ep_dev;
  
-@@ -137,6 +135,9 @@ IFX_int32_t MEI_VR10_PcieEntityInit(MEI_
+@@ -138,6 +136,9 @@ IFX_int32_t MEI_VR10_PcieEntityInit(MEI_
     pMeiDrvCntrl->MEI_pcie_irq = MEI_pcie_ep_dev.irq;
  
     return IFX_SUCCESS;
@@ -271,7 +272,7 @@
  }
  
  /**
-@@ -151,6 +152,7 @@ IFX_int32_t MEI_VR10_PcieEntityInit(MEI_
+@@ -152,6 +153,7 @@ IFX_int32_t MEI_VR10_PcieEntityInit(MEI_
  */
  IFX_int32_t MEI_VR10_PcieEntityFree(IFX_uint8_t entityNum)
  {
@@ -279,7 +280,7 @@
     if (ifx_pcie_ep_dev_info_release(entityNum))
     {
        PRN_ERR_USR_NL( MEI_DRV, MEI_DRV_PRN_LEVEL_ERR,
-@@ -160,6 +162,9 @@ IFX_int32_t MEI_VR10_PcieEntityFree(IFX_
+@@ -161,6 +163,9 @@ IFX_int32_t MEI_VR10_PcieEntityFree(IFX_
     }
  
     return IFX_SUCCESS;
@@ -289,7 +290,7 @@
  }
  
  /**
-@@ -174,6 +179,7 @@ IFX_int32_t MEI_VR10_PcieEntityFree(IFX_
+@@ -175,6 +180,7 @@ IFX_int32_t MEI_VR10_PcieEntityFree(IFX_
  */
  IFX_int32_t MEI_VR10_InternalInitDevice(MEI_DYN_CNTRL_T *pMeiDynCntrl)
  {
@@ -297,7 +298,7 @@
     IFX_int32_t         retVal;
     IOCTL_MEI_devInit_t InitDev;
     MEI_DEV_T           *pMeiDev = pMeiDynCntrl->pMeiDev;
-@@ -198,5 +204,8 @@ IFX_int32_t MEI_VR10_InternalInitDevice(
+@@ -199,6 +205,9 @@ IFX_int32_t MEI_VR10_InternalInitDevice(
     *MEI_GPIO_U32REG(GPIO_P0_ALSEL1) &= ~((1 << 0) | (1 << 3) | (1 << 8));
  
     return IFX_SUCCESS;
@@ -306,3 +307,4 @@
 +#endif
  }
  
+ IFX_int32_t MEI_PLL_ConfigInit(MEI_DEV_T *pMeiDev)
diff --git a/package/kernel/lantiq/ltq-vdsl-mei/patches/101_no-date-time.patch b/package/kernel/lantiq/ltq-vdsl-mei/patches/101_no-date-time.patch
index 88e39ab..8faac7e 100644
--- a/package/kernel/lantiq/ltq-vdsl-mei/patches/101_no-date-time.patch
+++ b/package/kernel/lantiq/ltq-vdsl-mei/patches/101_no-date-time.patch
@@ -1,6 +1,6 @@
 --- a/src/drv_mei_cpe_linux.c
 +++ b/src/drv_mei_cpe_linux.c
-@@ -1402,8 +1402,8 @@ struct proc_entry {
+@@ -1417,8 +1417,8 @@ struct proc_entry {
  static void MEI_GetVersionProc(struct seq_file *s)
  {
     seq_printf(s, "%s" MEI_DRV_CRLF, &MEI_WHATVERSION[4]);
