*/
 
 #include "Mutex.h"
+#include "debug.h"
 
 #include <SDL/SDL.h>
 
 
 void Mutex::Lock()
 {
-    if(IsValid())
-        SDL_mutexP(m_pSDL_mutex);
+    DASSERT(IsValid());
+
+    SDL_mutexP(m_pSDL_mutex);
+    m_uiThreadID = SDL_ThreadID();
 }
 void Mutex::Unlock()
 {
-    if(IsValid())
-        SDL_mutexV(m_pSDL_mutex);
+    DASSERT(IsValid());
+
+    DASSERT(m_uiThreadID == SDL_ThreadID());
+    SDL_mutexV(m_pSDL_mutex);
 }
 
     const Mutex& operator ==(const Mutex&);
 
 private:
-    SDL_mutex* m_pSDL_mutex;
+    SDL_mutex*   m_pSDL_mutex;
+    unsigned int m_uiThreadID;
 };
 
 #endif // MUTEX_H