diff --git a/CMakeLists.txt b/CMakeLists.txt
index a45928a..ed0231a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -202,7 +202,7 @@ if(WITH_KDE)
     add_definitions(-DHAVE_KDE ${KDE4_DEFINITIONS})
     set(HAVE_KDE 1)
     set(MOC_DEFINES ${MOC_DEFINES} -DHAVE_KDE)
-    set(QUASSEL_KDE_LIBRARIES ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBRARY} knotifyconfig)
+    set(QUASSEL_KDE_LIBRARIES ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBRARY} ${KDE4_SOLID_LIBS} knotifyconfig)
     # We always use external icons for KDE4 support, since we use its iconloader rather than our own
     set(EMBED_DATA OFF)
   else(KDE4_FOUND)
diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp
index f31354c..4b4119b 100644
--- a/src/qtui/mainwin.cpp
+++ b/src/qtui/mainwin.cpp
@@ -146,6 +146,10 @@ void MainWin::init() {
            SLOT(messagesInserted(const QModelIndex &, int, int)));
   connect(GraphicalUi::contextMenuActionProvider(), SIGNAL(showChannelList(NetworkId)), SLOT(showChannelList(NetworkId)));
 
+#ifdef HAVE_KDE
+  connect(Solid::Networking::notifier(), SIGNAL(statusChanged(Solid::Networking::Status)),
+           SLOT(networkStatusChanged(Solid::Networking::Status)));
+#endif
   // Setup Dock Areas
   setDockNestingEnabled(true);
   setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea);
@@ -1073,3 +1077,17 @@ void MainWin::showStatusBarMessage(const QString &message) {
   statusBar()->showMessage(message, 10000);
 }
 
+#ifdef HAVE_KDE
+void MainWin::networkStatusChanged(Solid::Networking::Status status) {
+  if(Quassel::runMode() != Quassel::Monolithic) {
+    if (status == Solid::Networking::Connected || status == Solid::Networking::Unknown) {
+      qDebug() << "network status changed to connected or unknown" << Solid::Networking::Connected << status;
+      showCoreConnectionDlg(true);
+    } else {
+      qDebug() << "Disconnected or whatever" << status;
+      emit disconnectFromCore();
+    }
+  }
+}
+#endif
+
diff --git a/src/qtui/mainwin.h b/src/qtui/mainwin.h
index c905e08..a182fc9 100644
--- a/src/qtui/mainwin.h
+++ b/src/qtui/mainwin.h
@@ -23,6 +23,7 @@
 
 #ifdef HAVE_KDE
 #  include <KMainWindow>
+#  include <Solid/Networking>
 #else
 #  include <QMainWindow>
 #endif
@@ -119,6 +120,7 @@ class MainWin
     void showNotificationsDlg();
 #ifdef HAVE_KDE
     void showShortcutsDlg();
+    void networkStatusChanged(Solid::Networking::Status status);
 #endif
     void on_actionConfigureNetworks_triggered();
     void on_actionConfigureViews_triggered();
