diff --git a/linux/network-manager.cpp b/linux/network-manager.cpp
index f101f51..e416186 100644
--- a/linux/network-manager.cpp
+++ b/linux/network-manager.cpp
@@ -6,17 +6,15 @@
  */
 
 #include "network-manager.h"
-#include <QProcess>
 
 NetworkManager::NetworkManager()
 {
     if (!QDBusConnection::systemBus().isConnected())
     {
-        qDebug() << "Cannot connect to the D-Bus session bus.\n";
         return;
     }
 
-    autoconfigProcess = new QProcess();
+    autoconfigProcess = new QProcess(this);
     connect(autoconfigProcess,SIGNAL(finished(int)),this,SLOT(autoconfigFinished()));
     connect(autoconfigProcess, SIGNAL(error(QProcess::ProcessError)), this, SLOT(autoconfigFinished()));
 
@@ -28,8 +26,6 @@
 
 void NetworkManager::stateChanged(uint state)
 {
-    qDebug() << "State = " << state;
-
     if(state == NM_STATE_CONNECTED_GLOBAL)
         autoconfigDaemon();
 }
@@ -39,14 +35,14 @@
     if(IsAutoconfigRunning())
         return;
 
-     qDebug() << "started running";
-     isAutoconfigRunning = true;
-     autoconfigProcess->start(NDND_AUTOCONFIG_COMMAND);
+    isAutoconfigRunning = true;
+
+    if(autoconfigProcess != NULL)
+        autoconfigProcess->start(NDND_AUTOCONFIG_COMMAND);
 }
 
 void NetworkManager::autoconfigFinished()
 {
-    qDebug() << "stoped running";
     isAutoconfigRunning = false;
 }
 
