diff --git a/linux/network-manager.cpp b/linux/network-manager.cpp
index e416186..4f552b6 100644
--- a/linux/network-manager.cpp
+++ b/linux/network-manager.cpp
@@ -5,6 +5,7 @@
  * @author Ilya Moiseenko <iliamo@ucla.edu>
  */
 
+#include "config.h"
 #include "network-manager.h"
 
 NetworkManager::NetworkManager()
diff --git a/linux/network-manager.h b/linux/network-manager.h
index 04e987d..e62ab6d 100644
--- a/linux/network-manager.h
+++ b/linux/network-manager.h
@@ -11,7 +11,6 @@
 #ifndef NETWORKMANAGER_H
 #define NETWORKMANAGER_H
 
-#define NDND_AUTOCONFIG_COMMAND "/usr/local/bin/ndnd-autoconfig"
 #define NM_STATE_DISCONNECTED 20
 #define NM_STATE_CONNECTING 40
 #define NM_STATE_CONNECTED_GLOBAL 70
diff --git a/linux/tray-menu.cpp b/linux/tray-menu.cpp
index f2d11c6..cfd420a 100644
--- a/linux/tray-menu.cpp
+++ b/linux/tray-menu.cpp
@@ -5,6 +5,8 @@
  * @author Ilya Moiseenko <iliamo@ucla.edu>
  */
 
+#include "config.h"
+
 #include "tray-menu.h"
 #include "ui_traymenu.h"   //generated from traymenu.ui
 #include "quit-dialog.h"
@@ -384,7 +386,7 @@
 
 void TrayMenu::daemonStatusUpdate()
 {
-    urlManager->get(QNetworkRequest(QUrl("http://localhost:9695/?f=xml")));
+    urlManager->get(QNetworkRequest(QUrl("http://localhost:6363/?f=xml")));
 }
 
 void TrayMenu::runXmlProc(QNetworkReply *reply)
@@ -396,7 +398,7 @@
     arguments << QApplication::applicationDirPath() + "/" + STATUS_XSLT_FILE << "-";
     connect(applyStatusXslt,SIGNAL(finished(int)), this, SLOT(parseStatusXml()));
     //connect(applyStatusXslt,SIGNAL(finished(int)), applyStatusXslt, SLOT(deleteLater()));
-    applyStatusXslt->start(XSLT_PROC,arguments);
+    applyStatusXslt->start(XSLTPROC,arguments);
     applyStatusXslt->write(buffer);
     applyStatusXslt->closeWriteChannel();
 
@@ -405,7 +407,7 @@
     args << QApplication::applicationDirPath() + "/" + FIB_XSLT_FILE << "-";
     connect(applyFibXslt,SIGNAL(finished(int)), this, SLOT(parseFibXml()));
     //connect(applyFibXslt,SIGNAL(finished(int)), applyFibXslt, SLOT(deleteLater()));
-    applyFibXslt->start(XSLT_PROC,args);
+    applyFibXslt->start(XSLTPROC,args);
     applyFibXslt->write(buffer);
     applyFibXslt->closeWriteChannel();
 }
diff --git a/linux/tray-menu.h b/linux/tray-menu.h
index fd05650..740004d 100644
--- a/linux/tray-menu.h
+++ b/linux/tray-menu.h
@@ -27,12 +27,6 @@
 #include "quit-dialog.h"
 #include "network-manager.h"
 
-#define NDND_START_COMMAND "/usr/local/bin/ndndstart"
-#define NDND_STOP_COMMAND "/usr/local/bin/ndndstop"
-#define NDND_STATUS_COMMAND "/usr/local/bin/ndndsmoketest"
-#define NDND_FIB_COMMAND "/usr/local/bin/ndndc"
-#define XSLT_PROC "xsltproc"
-
 #define ALLOW_SOFTWARE_UPDATES "AllowAutomaticUpdates"
 #define ENABLE_HUB_DISCOVERY "EnableHubDiscovery"
 #define ENABLE_START_ON_LOGIN "enableStartOnLogin"
diff --git a/wscript b/wscript
index 1fe7a68..03fb3cf 100644
--- a/wscript
+++ b/wscript
@@ -50,6 +50,8 @@
         conf.load('sparkle')
     else:
         conf.load('qt4')
+        conf.find_program('xsltproc', mandatory=True)
+        conf.define('XSLTPROC', conf.env['XSLTPROC'])
         
         if Utils.unversioned_sys_platform () == "darwin":
             conf.define('OSX_BUILD', 1)
