diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6a2cf83..518d552 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -198,7 +198,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 50e2731..1f267b5 100644
--- a/src/qtui/mainwin.cpp
+++ b/src/qtui/mainwin.cpp
@@ -151,6 +151,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);
@@ -1027,3 +1031,16 @@ void MainWin::showStatusBarMessage(const QString &message) {
   statusBar()->showMessage(message, 10000);
 }
 
+#ifdef HAVE_KDE
+void MainWin::networkStatusChanged(Solid::Networking::Status status) {
+
+  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 011568d..fda8b94 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
@@ -115,6 +116,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();
