diff --git a/daemon/src/audio/audiorecorder.cpp b/daemon/src/audio/audiorecorder.cpp
index f49c00771c6207f757fc88fef7e5c8ed9558460e..54a742179ae0e45943f65fffa50b92ac2756bd69 100644
--- a/daemon/src/audio/audiorecorder.cpp
+++ b/daemon/src/audio/audiorecorder.cpp
@@ -30,6 +30,7 @@
 
 #include "audiorecorder.h"
 #include "mainbuffer.h"
+#include "logger.h"
 #include <sstream>
 #include <cassert>
 #include <tr1/array>
@@ -37,7 +38,7 @@
 int AudioRecorder::count_ = 0;
 
 AudioRecorder::AudioRecorder(AudioRecord  *arec, MainBuffer *mb) : ost::Thread(),
-    recorderId_(), mbuffer_(mb), arecord_(arec)
+    recorderId_(), mbuffer_(mb), arecord_(arec), running_(true)
 {
     assert(mb);
 
@@ -63,13 +64,13 @@ void AudioRecorder::run()
     std::tr1::array<SFLDataFormat, BUFFER_LENGTH> buffer;
     buffer.assign(0);
 
-    while (isRunning()) {
+    while (running_) {
         size_t availBytes = mbuffer_->availForGet(recorderId_);
         mbuffer_->getData(buffer.data(), std::min(availBytes, buffer.size()), recorderId_);
 
         if (availBytes > 0)
             arecord_->recData(buffer.data(), availBytes / sizeof(SFLDataFormat));
 
-        sleep(20);
+        Thread::sleep(20);
     }
 }
diff --git a/daemon/src/audio/audiorecorder.h b/daemon/src/audio/audiorecorder.h
index 82be9a4795f4555073944080294a0c56dc14c8b5..c417b4cc7bd8aaaf9969643fbdfa5f49e84b69eb 100644
--- a/daemon/src/audio/audiorecorder.h
+++ b/daemon/src/audio/audiorecorder.h
@@ -44,6 +44,7 @@ class AudioRecorder : public ost::Thread {
         AudioRecorder(AudioRecord  *arec, MainBuffer *mb);
 
         ~AudioRecorder() {
+            running_ = false;
             terminate();
         }
 
@@ -61,6 +62,7 @@ class AudioRecorder : public ost::Thread {
         std::string recorderId_;
         MainBuffer *mbuffer_;
         AudioRecord *arecord_;
+        bool running_;
 };
 
 #endif