diff --git a/platform/drivers/NVM/nvmem_MDUV3x0.c b/platform/drivers/NVM/nvmem_MDUV3x0.c
index f8158618..bfebaf0f 100644
--- a/platform/drivers/NVM/nvmem_MDUV3x0.c
+++ b/platform/drivers/NVM/nvmem_MDUV3x0.c
@@ -18,7 +18,7 @@
* along with this program; if not, see *
***************************************************************************/
-#include
+#include
#include
#include
#include
@@ -244,6 +244,9 @@ int nvm_readChannelData(channel_t *channel, uint16_t pos)
W25Qx_readData(readAddr, ((uint8_t *) &chData), sizeof(mduv3x0Channel_t));
W25Qx_sleep();
+ // Check if the channel is empty
+ if(wcslen((wchar_t *) chData.name) == 0) return -1;
+
channel->mode = chData.channel_mode - 1;
channel->bandwidth = chData.bandwidth;
channel->admit_criteria = chData.admit_criteria;
@@ -337,6 +340,8 @@ int nvm_readZoneData(zone_t *zone, uint16_t pos)
W25Qx_readData(zoneExtAddr, ((uint8_t *) &zoneExtData), sizeof(mduv3x0ZoneExt_t));
W25Qx_sleep();
+ // Check if zone is empty
+ if(wcslen((wchar_t *) zoneData.name) == 0) return -1;
/*
* Brutally convert channel name from unicode to char by truncating the most
* significant byte