diff --git a/LCS/ACC/PLC/src/ProcControlComm.cc b/LCS/ACC/PLC/src/ProcControlComm.cc
index 3d8f108dc651260e4d6406620309bd6d80390b33..824e714db76ef9b093aa7c30617d475ba714c549 100644
--- a/LCS/ACC/PLC/src/ProcControlComm.cc
+++ b/LCS/ACC/PLC/src/ProcControlComm.cc
@@ -23,7 +23,6 @@
 #include <lofar_config.h>
 
 //# Includes
-#include <Transport/TH_Socket.h>
 #include <PLC/ProcControlComm.h>
 
 namespace LOFAR {
@@ -39,17 +38,17 @@ ProcControlComm::ProcControlComm(const string&		hostname,
 	itsReadConn(0),
 	itsWriteConn(0),
 	itsDataHolder(new DH_ProcControl),
-	itsSyncComm(syncComm)
+	itsSyncComm(syncComm),
+    itsTHSocket(new TH_Socket(hostname, port, syncComm))
 {
 	ASSERTSTR(itsDataHolder, "Unable to allocate a dataholder");
 	itsDataHolder->init();
 
-	TH_Socket*	theTH = new TH_Socket(hostname, port, syncComm);
-	ASSERTSTR(theTH, "Unable to allocate a transportHolder");
-	theTH->init();
+	ASSERTSTR(itsTHSocket, "Unable to allocate a transportHolder");
+	itsTHSocket->init();
 
-	itsReadConn  = new CSConnection("read",  0, itsDataHolder, theTH, syncComm);
-	itsWriteConn = new CSConnection("write", itsDataHolder, 0, theTH, syncComm);
+	itsReadConn  = new CSConnection("read",  0, itsDataHolder, itsTHSocket, syncComm);
+	itsWriteConn = new CSConnection("write", itsDataHolder, 0, itsTHSocket, syncComm);
 	ASSERTSTR(itsReadConn,  "Unable to allocate connection for reading");
 	ASSERTSTR(itsWriteConn, "Unable to allocate connection for wrtiting");
 }
@@ -62,26 +61,28 @@ ProcControlComm::ProcControlComm(const string&		port,
 	itsReadConn(0),
 	itsWriteConn(0),
 	itsDataHolder(new DH_ProcControl),
-	itsSyncComm(syncComm)
+	itsSyncComm(syncComm),
+    itsTHSocket(new TH_Socket(port, syncComm))
 {
 	ASSERTSTR(itsDataHolder, "Unable to allocate a dataholder");
 	itsDataHolder->init();
 
-	TH_Socket*	theTH = new TH_Socket(port, syncComm);
-	ASSERTSTR(theTH, "Unable to allocate a transportHolder");
-	theTH->init();
+	ASSERTSTR(itsTHSocket, "Unable to allocate a transportHolder");
+	itsTHSocket->init();
 
-	itsReadConn  = new CSConnection("read",  0, itsDataHolder, theTH, syncComm);
-	itsWriteConn = new CSConnection("write", itsDataHolder, 0, theTH, syncComm);
+	itsReadConn  = new CSConnection("read",  0, itsDataHolder, itsTHSocket, syncComm);
+	itsWriteConn = new CSConnection("write", itsDataHolder, 0, itsTHSocket, syncComm);
 	ASSERTSTR(itsReadConn,  "Unable to allocate connection for reading");
 	ASSERTSTR(itsWriteConn, "Unable to allocate connection for wrtiting");
 }
+
 // Destructor
 ProcControlComm::~ProcControlComm() 
 {
-	if (itsDataHolder) {
-		delete itsDataHolder;
-	}
+    delete itsWriteConn;
+    delete itsReadConn;
+    delete itsTHSocket;
+	delete itsDataHolder;
 }
 
 //# Returns the result code from the last completed command.
diff --git a/LCS/ACC/PLC/src/ProcCtrlRemote.cc b/LCS/ACC/PLC/src/ProcCtrlRemote.cc
index 1894d6d414725b21ed28705a2edb0a8c461bf1db..d72e16384bb617974b99889a6418115d9e4a5ee6 100644
--- a/LCS/ACC/PLC/src/ProcCtrlRemote.cc
+++ b/LCS/ACC/PLC/src/ProcCtrlRemote.cc
@@ -44,6 +44,11 @@ ProcCtrlRemote::ProcCtrlRemote(ProcessControl* aProcCtrl, const string& aUniqPro
 	LOG_TRACE_FLOW(AUTO_FUNCTION_NAME);
 }
 
+ProcCtrlRemote::~ProcCtrlRemote()
+{
+    delete itsPCServer;
+}
+
 //
 // operator()
 //