diff --git a/src/smartpower2.ino b/src/smartpower2.ino
index 87714327949c1125b8646546a9236a631f292e55..0a7ff824c73e8ddbddbb8ad4dc21bf6290f28e4a 100644
--- a/src/smartpower2.ino
+++ b/src/smartpower2.ino
@@ -41,7 +41,7 @@ WiFiClient logClient;
 #define MEASUREWATTHOUR		'm'
 #define FW_VERSION			'f'
 
-#define FWversion	1.2
+#define FWversion	1.3
 
 uint8_t onoff = OFF;
 unsigned char measureWh;
@@ -66,7 +66,7 @@ double watth;
 
 #define MAX_SRV_CLIENTS 1
 
-ESP8266WebServer server;
+ESP8266WebServer *server;
 WebSocketsServer webSocket = WebSocketsServer(81);
 IPAddress ip = IPAddress(192, 168, 4, 1);
 
@@ -125,7 +125,7 @@ void setup() {
 }
 
 void loop() {
-    server.handleClient();
+    server->handleClient();
     webSocket.loop();
     timer.run();
 
@@ -184,14 +184,14 @@ void webserver_init(void)
     webSocket.begin();
     webSocket.onEvent(webSocketEvent);
 
-    server.on("/list", HTTP_GET, handleFileList);
+    server->on("/list", HTTP_GET, handleFileList);
 
     //use it to load content from SPIFFS
-    server.onNotFound([](){
-        if(!handleFileRead(server.uri()))
-        server.send(404, "text/plain", "FileNotFound");
+    server->onNotFound([](){
+        if(!handleFileRead(server->uri()))
+        server->send(404, "text/plain", "FileNotFound");
     });
-    server.begin();
+    server->begin();
 
     USE_SERIAL.println("HTTP server started");
 }
@@ -210,7 +210,7 @@ String formatBytes(size_t bytes){
 }
 
 String getContentType(String filename) {
-    if(server.hasArg("download")) return "application/octet-stream";
+    if(server->hasArg("download")) return "application/octet-stream";
     else if(filename.endsWith(".htm")) return "text/html";
     else if(filename.endsWith(".html")) return "text/html";
     else if(filename.endsWith(".js")) return "application/javascript";
@@ -231,7 +231,7 @@ bool handleFileRead(String path) {
         if (SPIFFS.exists(pathWithGz))
         path += ".gz";
         File file = SPIFFS.open(path, "r");
-        size_t sent = server.streamFile(file, contentType);
+        size_t sent = server->streamFile(file, contentType);
         file.close();
         return true;
     }
@@ -240,8 +240,8 @@ bool handleFileRead(String path) {
 }
 
 void handleFileList() {
-    if(!server.hasArg("dir")) {server.send(500, "text/plain", "BAD ARGS"); return;}
-    String path = server.arg("dir");
+    if(!server->hasArg("dir")) {server->send(500, "text/plain", "BAD ARGS"); return;}
+    String path = server->arg("dir");
     Serial.println("handleFileList: " + path);
     Dir dir = SPIFFS.openDir(path);
     path = String();
@@ -260,7 +260,7 @@ void handleFileList() {
     }
 
     output += "]";
-    server.send(200, "text/json", output);
+    server->send(200, "text/json", output);
 }
 
 void handleClientData(uint8_t num, String data)
@@ -418,7 +418,7 @@ void readNetworkConfig(void)
     ipaddr[2] = f.readStringUntil('.').toInt();
     ipaddr[3] = f.readStringUntil('"').toInt();
     ip = IPAddress(ipaddr[0], ipaddr[1], ipaddr[2], ipaddr[3]);
-    server =  ESP8266WebServer(ip, 80);
+    server =  new ESP8266WebServer(ip, 80);
 
     f.findUntil("passwd", "\n\r");
     f.seek(2, SeekCur);