diff --git a/dispsrv.conf b/dispsrv.conf
index ae1d954b9b5b95debb2e4698266c0514c6c3d2f8..c9aa947034641876b62491f8b2092f961da68705 100644
--- a/dispsrv.conf
+++ b/dispsrv.conf
@@ -9,6 +9,8 @@ items_file items.cfg
 # PLC - coke brain
 #coke_modbus_address 130.95.13.73
 coke_modbus_address 0.0.0.0
+# 502 is default modbus port, virtualcoke uses 1502
+coke_modbus_port 502
 
 # Zero price items, defaults to off
 test_mode no
diff --git a/items.cfg b/items.cfg
index df3305a754ade2adf0f6e7710fcd554d38190023..785439d9d728e4cd322aa6a3f9d88067015aae80 100644
--- a/items.cfg
+++ b/items.cfg
@@ -5,7 +5,7 @@
 # Type	ID	Price	Description
 
 # Drinks
-coke	0	200	Blue Powerade
+coke	0	200	X Blue Powerade
 coke	1	200	Mother Energy Drink
 coke	2	75	Solo
 coke	3	75	Lemonade
diff --git a/src/server/handler_coke.c b/src/server/handler_coke.c
index b9a9cf3271bbbd6e0a30e8441d7eee1ef165855b..34b9d2ef93d4b25a312b4f14ce1e65f014aae8d7 100644
--- a/src/server/handler_coke.c
+++ b/src/server/handler_coke.c
@@ -49,6 +49,7 @@ tHandler	gCoke_Handler = {
 	Coke_DoDispense
 };
 const char	*gsCoke_ModbusAddress = "130.95.13.73";
+ int		gsCoke_ModbusPort = 502;
 modbus_t	*gCoke_Modbus;
 time_t	gtCoke_LastDispenseTime;
 time_t	gtCoke_LastReconnectTime;
@@ -126,7 +127,7 @@ int Coke_int_ConnectToPLC(void)
 
 	if( !gCoke_Modbus )
 	{
-		gCoke_Modbus = modbus_new_tcp(gsCoke_ModbusAddress, 502);
+		gCoke_Modbus = modbus_new_tcp(gsCoke_ModbusAddress, gsCoke_ModbusPort);
 		if( !gCoke_Modbus )
 		{
 			perror("coke - modbus_new_tcp");
diff --git a/src/server/main.c b/src/server/main.c
index cbebee28e92f2de0bc0a4979a60b4cef3ec61b6a..2cc3bc3dd69dad6241c30e5942172e4c893f9dbc 100644
--- a/src/server/main.c
+++ b/src/server/main.c
@@ -31,6 +31,7 @@ extern int	gbServer_RunInBackground;
 extern int	giServer_Port;
 extern const char	*gsItemListFile;
 extern const char	*gsCoke_ModbusAddress;
+extern int	gsCoke_ModbusPort;
 extern const char	*gsDoor_SerialPort;
 extern bool	gbSyslogEnabled;
 
@@ -126,13 +127,15 @@ int main(int argc, char *argv[])
 	gbServer_RunInBackground = Config_GetValue_Bool("daemonise", 0);
 	gsCokebankPath       = Config_GetValue("cokebank_database", 0);
 	gsDoor_SerialPort    = Config_GetValue("door_serial_port", 0);
-	gsCoke_ModbusAddress = Config_GetValue("coke_modbus_address", 0);
 	giServer_Port        = Config_GetValue_Int("server_port", 0);
 	gsItemListFile       = Config_GetValue("items_file", 0);
 
 	gbNoCostMode         = (Config_GetValue_Bool("test_mode", 0) == 1);
 	gbSyslogEnabled      = (Config_GetValue_Bool("disable_syslog", 0) == 0);
 
+	gsCoke_ModbusAddress = Config_GetValue("coke_modbus_address", 0);
+	gsCoke_ModbusPort    = Config_GetValue_Int("coke_modbus_port", 0);
+
 	signal(SIGINT, sigint_handler);
 	signal(SIGTERM, sigint_handler);