diff --git a/source/RobotAPI/drivers/WeissHapticSensor/AbstractInterface.cpp b/source/RobotAPI/drivers/WeissHapticSensor/AbstractInterface.cpp
index d8cfc06a6c68b2be86d3c51cfabc9a0bad3487e5..4d77eadebbc4131703097cae300cbb47a37204b5 100644
--- a/source/RobotAPI/drivers/WeissHapticSensor/AbstractInterface.cpp
+++ b/source/RobotAPI/drivers/WeissHapticSensor/AbstractInterface.cpp
@@ -281,6 +281,7 @@ int AbstractInterface::send(unsigned char id, unsigned int len, unsigned char *d
     res = write( buf, 6 + len + 2 );
     if ( res < 6 + (int)len + 2 )
     {
+		delete[] buf;
         close();
         throw TransmissionException("Failed to submit message checksum");
         //cerr << "Failed to submit message checksum" << endl;
diff --git a/source/RobotAPI/drivers/WeissHapticSensor/SerialInterface.cpp b/source/RobotAPI/drivers/WeissHapticSensor/SerialInterface.cpp
index ee19bf6cf6ace8182ecd9bff9c8710087c8013a2..26025d55cf93a1dae9b3cb3856733e6285761566 100644
--- a/source/RobotAPI/drivers/WeissHapticSensor/SerialInterface.cpp
+++ b/source/RobotAPI/drivers/WeissHapticSensor/SerialInterface.cpp
@@ -38,6 +38,7 @@ SerialInterface::SerialInterface(const char *device, unsigned int bitrate)
 {
     this->device = device;
     this->bitrate = bitrate;
+	this->fd = -1;
 }
 
 SerialInterface::~SerialInterface() {
diff --git a/source/RobotAPI/drivers/WeissHapticSensor/WeissHapticSensor.cpp b/source/RobotAPI/drivers/WeissHapticSensor/WeissHapticSensor.cpp
index 82beabb08d12a19d06a04cdb410787842345b45f..f71bf414b5f4cac1bd917e57440aa2d7ab70db64 100644
--- a/source/RobotAPI/drivers/WeissHapticSensor/WeissHapticSensor.cpp
+++ b/source/RobotAPI/drivers/WeissHapticSensor/WeissHapticSensor.cpp
@@ -6,7 +6,7 @@
 using namespace armarx;
 
 WeissHapticSensor::WeissHapticSensor(std::string device)
-    : device(device)
+    : device(device), connected(false)
 {
     sensorTask = new RunningTask<WeissHapticSensor>(this, &WeissHapticSensor::frameAcquisitionTaskLoop);
     boost::smatch match;