diff --git a/app/controllers/webmin.controller.js b/app/controllers/webmin.controller.js
index 6f96937197a52fc9ea5570064867d7cfc017a7a0..5c846f03f1fe279ca1d33b7d82ca420e6630de05 100644
--- a/app/controllers/webmin.controller.js
+++ b/app/controllers/webmin.controller.js
@@ -23,7 +23,9 @@ var Synchroniser = require('../lib/sync');
 var multicaster = require('../lib/streams/multicaster');
 var logger = require('../lib/logger')('webmin');
 
-module.exports = (dbConf, overConf) => new WebAdmin(dbConf, overConf);
+module.exports = (dbConf, overConf) => {
+  return new WebAdmin(dbConf, overConf);
+};
 
 function WebAdmin (dbConf, overConf) {
 
@@ -88,6 +90,16 @@ function WebAdmin (dbConf, overConf) {
     return upnp(server.conf.port, server.conf.remoteport);
   });
 
+  this.regularUPnP = () => co(function *() {
+    yield pluggedDALP;
+    if (server.upnpAPI) {
+      server.upnpAPI.stopRegular();
+    }
+    server.upnpAPI = yield upnp(server.conf.port, server.conf.remoteport);
+    server.upnpAPI.startRegular();
+    return {};
+  });
+
   this.stopHTTP = () => co(function *() {
     yield pluggedDALP;
     return bmapi.closeConnections();
diff --git a/app/lib/streams/webmin.js b/app/lib/streams/webmin.js
index c380bf55043433fff9f29d7f65886b34d71b75b4..48e3b056047719e362733fa7b75a8bee233b0e43 100644
--- a/app/lib/streams/webmin.js
+++ b/app/lib/streams/webmin.js
@@ -18,10 +18,11 @@ module.exports = function(dbConf, overConf, interfaces, httpLogs) {
   return network.createServersAndListen('uCoin web admin', interfaces, httpLogs, fullPath, (app, httpMethods) => {
 
     httpMethods.httpGET(  '/webmin/summary',                   webminCtrl.summary, dtos.AdminSummary);
-    httpMethods.httpPOST(  '/webmin/key/preview',               webminCtrl.previewPubkey, dtos.PreviewPubkey);
+    httpMethods.httpPOST( '/webmin/key/preview',               webminCtrl.previewPubkey, dtos.PreviewPubkey);
     httpMethods.httpGET(  '/webmin/server/http/start',         webminCtrl.startHTTP, dtos.Boolean);
     httpMethods.httpGET(  '/webmin/server/http/stop',          webminCtrl.stopHTTP,  dtos.Boolean);
     httpMethods.httpGET(  '/webmin/server/http/upnp/open',     webminCtrl.openUPnP,  dtos.Boolean);
+    httpMethods.httpGET(  '/webmin/server/http/upnp/regular',  webminCtrl.regularUPnP,  dtos.Boolean);
     httpMethods.httpGET(  '/webmin/server/preview_next',       webminCtrl.previewNext,  dtos.Block);
     httpMethods.httpPOST( '/webmin/server/send_conf',          webminCtrl.sendConf, dtos.Identity);
     httpMethods.httpPOST( '/webmin/server/net_conf',           webminCtrl.applyNetworkConf, dtos.Boolean);
diff --git a/app/lib/upnp.js b/app/lib/upnp.js
index 8badf5e32aeff0fe8501e78454d1cb6ac99173ee..b0d480d2454f1c86800f2d8ffb5685dd8ef06d51 100644
--- a/app/lib/upnp.js
+++ b/app/lib/upnp.js
@@ -25,13 +25,12 @@ module.exports = function (localPort, remotePort) {
             client.close();
           });
       }
-      let interval;
-      return {
+      let interval, upnpService = {
         openPort: () => {
           return openPort(localPort, remotePort);
         },
         startRegular: () => {
-          this.stopRegular();
+          upnpService.stopRegular();
           // Update UPnP IGD every INTERVAL seconds
           interval = setInterval(async.apply(openPort, localPort, remotePort), 1000 * constants.NETWORK.UPNP.INTERVAL);
         },
@@ -41,6 +40,7 @@ module.exports = function (localPort, remotePort) {
           }
         }
       };
+      return upnpService;
     });
   });
 };
diff --git a/package.json b/package.json
index 51b45e015d67625e14cca8e600aea51a1e5f7547..79ea604edab2e46dc2c290c8d1a52b030ed16b68 100644
--- a/package.json
+++ b/package.json
@@ -16,7 +16,7 @@
     "test": "mocha --growl --timeout 20000 test test/fast test/fast/block test/integration test/",
     "start": "node bin/ucoind start",
     "test-travis": "node ./node_modules/istanbul/lib/cli.js cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec --timeout 20000 test test/fast test/fast/block test/integration test/",
-    "postinstall": "mkdir ui -p && cd ui && npm pack ucoin-ui@0.1.11 && tar xzf ucoin-ui-0.1.11.tgz && cd package && npm install && cd .. && rm ucoin-ui-0.1.11.tgz"
+    "postinstall": "mkdir ui -p && cd ui && npm pack ucoin-ui@0.1.12 && tar xzf ucoin-ui-0.1.12.tgz && cd package && npm install && cd .. && rm ucoin-ui-0.1.12.tgz"
   },
   "repository": {
     "type": "git",