diff --git a/Socket/NetdeviceController.cc b/Socket/NetdeviceController.cc
index c5c2ca49488d8d4542027b419200b7bd6728a29b..a8f6a195c4b861c0c2b3340d6d3ba14d13e4d21c 100644
--- a/Socket/NetdeviceController.cc
+++ b/Socket/NetdeviceController.cc
@@ -169,11 +169,6 @@ prefix_ int senf::NetdeviceController::interfaceIndex()
     return ifindex_;
 }
 
-prefix_ senf::NetdeviceController::~NetdeviceController()
-{
-    close( sockfd_->fd);
-}
-
 prefix_ void senf::NetdeviceController::ifrName(ifreq& ifr)
     const
 {
@@ -199,24 +194,22 @@ prefix_ senf::NetdeviceController::SockFd::SockFd()
 {
     if ( fd < 0)
         SENF_THROW_SYSTEM_EXCEPTION("Could not open socket for NetdeviceController.");
+    std::cerr << ">>Made SockFd: " << fd << std::endl;
 }
 
 prefix_ senf::NetdeviceController::SockFd::~SockFd()
 {
+    std::cerr << ">>Dispose SockFd: " << fd << std::endl;
     ::close(fd);
 }
 
 prefix_ senf::NetdeviceController::SockFd::ptr senf::NetdeviceController::sockfd()
 {
     static boost::weak_ptr<SockFd> sockfd;
-
-    if (sockfd.expired()) {
-        SockFd::ptr newsockfd (new SockFd());
-        sockfd = newsockfd;
-        return newsockfd;
-    }
-    return sockfd.lock();
-        
+    SockFd::ptr p (sockfd.lock());
+    if (!p)
+         sockfd = p = SockFd::ptr(new SockFd());
+    return p;
 }
 
 ///////////////////////////////cc.e////////////////////////////////////////
diff --git a/Socket/NetdeviceController.hh b/Socket/NetdeviceController.hh
index 521e12938f32c084f52955bf0a781b80d23fbd0a..e969cda37bf0bd13a1927154b6e23b315f52444a 100644
--- a/Socket/NetdeviceController.hh
+++ b/Socket/NetdeviceController.hh
@@ -55,8 +55,6 @@ namespace senf {
                                         ///< Construct a new controller for the given interface name.
         explicit NetdeviceController(int interface_index);
                                         ///< Construct a new controller for the given interface index.
-        virtual ~NetdeviceController();
-
         int interfaceIndex() const;     ///< return the interface index
         MACAddress hardwareAddress() const;
                                         ///< return hardware address