diff --git a/src/audio/pulselayer.cpp b/src/audio/pulselayer.cpp
index 9843666c645c3bef501f25beb4b22785e55542bc..a4ccdb7702538d306fe980ac0d3a04042724cce5 100644
--- a/src/audio/pulselayer.cpp
+++ b/src/audio/pulselayer.cpp
@@ -44,7 +44,12 @@ static  void audioCallback ( pa_stream* s, size_t bytes, void* userdata )
 // Destructor
 PulseLayer::~PulseLayer (void) 
 { 
-    closeLayer();
+    /* Delete the pointer streams */
+    delete playback;
+    delete record;
+  
+    pa_context_disconnect( context );  
+    pa_context_unref( context );
 }
 
   void
@@ -58,15 +63,6 @@ PulseLayer::closeLayer( void )
   while(PulseLayer::streamState != 2)
     ;
   PulseLayer::streamState = 0; 
-
-  delete playback;
-  delete record;
-
-  pa_context_disconnect( context );  
-  pa_context_unref( context );
-  
-  //TODO  Remove this ugly hack
-  sleep(2);
 }
 
   void