diff --git a/src/mainapplication.cpp b/src/mainapplication.cpp
index cf7f7cbb257dc2bdfe87bda9775f1a6480c463bc..dc93b6b01330ede99261a0cdbe630dcf0e24fa60 100644
--- a/src/mainapplication.cpp
+++ b/src/mainapplication.cpp
@@ -133,6 +133,7 @@ MainApplication::init()
 
     GlobalInstances::setPixmapManipulator(std::make_unique<PixbufManipulator>());
     initLrc();
+    initConnectivityMonitor();
 
     bool startMinimized {false};
     parseArguments(startMinimized);
@@ -208,6 +209,17 @@ MainApplication::initLrc()
     LRCInstance::getAPI().holdConferences = false;
 }
 
+void
+MainApplication::initConnectivityMonitor()
+{
+#ifdef Q_OS_WIN
+    connectivityMonitor_.reset(new ConnectivityMonitor(this));
+    connect(connectivityMonitor_.get(), &ConnectivityMonitor::connectivityChanged, [this] {
+        LRCInstance::connectivityChanged();
+    });
+#endif // Q_OS_WIN
+}
+
 void
 MainApplication::parseArguments(bool& startMinimized)
 {
diff --git a/src/mainapplication.h b/src/mainapplication.h
index 95e656b1815a195d166e360a8ed501a21811a294..fd72c947bd650c882a4ac12029a26ad19705ddf1 100644
--- a/src/mainapplication.h
+++ b/src/mainapplication.h
@@ -20,6 +20,8 @@
 
 #pragma once
 
+#include "connectivitymonitor.h"
+
 #include <QFile>
 #include <QApplication>
 #include <QQmlApplicationEngine>
@@ -40,6 +42,7 @@ public:
 private:
     void loadTranslations();
     void initLrc();
+    void initConnectivityMonitor();
     void parseArguments(bool& startMinimized);
     void setApplicationFont();
     void initQmlEngine();
@@ -48,6 +51,9 @@ private:
     void cleanup();
 
 private:
+#ifdef Q_OS_WIN
+    QScopedPointer<ConnectivityMonitor> connectivityMonitor_;
+#endif // Q_OS_WIN
     QScopedPointer<QFile> debugFile_;
     QQmlApplicationEngine* engine_;
 };