diff --git a/mesecons_microcontroller/init.lua b/mesecons_microcontroller/init.lua
index 9b1bf3b7edabbb0f2c4bc08667e70d59d2ee69ae..f9ba979d453b31b70cbdf5e90cc5e95cdd9811eb 100644
--- a/mesecons_microcontroller/init.lua
+++ b/mesecons_microcontroller/init.lua
@@ -571,6 +571,7 @@ yc.command_parsecondition = function(cond, L, eeprom)
 		if cond:sub(i+1, i+1) == nil then break end
 		if s == "&" then
 			if a==nil then return nil end
+			if b==nil then return nil end
 			local buf = ((a==1) and (b==1))
 			if buf == true  then buf = "1" end
 			if buf == false then buf = "0" end
@@ -580,6 +581,7 @@ yc.command_parsecondition = function(cond, L, eeprom)
 		end
 		if s == "|" then
 			if a==nil then return nil end
+			if b==nil then return nil end
 			local buf = ((a == 1) or (b == 1))
 			if buf == true  then buf = "1" end
 			if buf == false then buf = "0" end
@@ -589,6 +591,7 @@ yc.command_parsecondition = function(cond, L, eeprom)
 		end
 		if s == "~" then
 			if a==nil then return nil end
+			if b==nil then return nil end
 			local buf = (((a == 1) or (b == 1)) and not((a==1) and (b==1)))
 			if buf == true  then buf = "1" end
 			if buf == false then buf = "0" end