diff --git a/drd/drd_semaphore.c b/drd/drd_semaphore.c
index d3d0d17..1125c1b 100644
--- a/drd/drd_semaphore.c
+++ b/drd/drd_semaphore.c
@@ -117,10 +117,11 @@
   if (s_trace_semaphore)
   {
     VG_(message)(Vg_UserMsg,
-                 "[%d/%d] semaphore_init      0x%lx",
+                 "[%d/%d] semaphore_init      0x%lx value %d",
                  VG_(get_running_tid)(),
                  thread_get_running_tid(),
-                 semaphore);
+                 semaphore,
+                 value);
   }
   p = semaphore_get(semaphore);
   if (p)
@@ -147,17 +148,18 @@
 {
   struct semaphore_info* p;
 
+  p = semaphore_get(semaphore);
+
   if (s_trace_semaphore)
   {
     VG_(message)(Vg_UserMsg,
-                 "[%d/%d] semaphore_destroy   0x%lx",
+                 "[%d/%d] semaphore_destroy   0x%lx value %d",
                  VG_(get_running_tid)(),
                  thread_get_running_tid(),
-                 semaphore);
+                 semaphore,
+                 p ? p->value : 0);
   }
 
-  p = semaphore_get(semaphore);
-
   if (p == 0)
   {
     GenericErrInfo GEI;
@@ -181,10 +183,11 @@
   if (s_trace_semaphore)
   {
     VG_(message)(Vg_UserMsg,
-                 "[%d/%d] semaphore_pre_wait  0x%lx",
+                 "[%d/%d] semaphore_pre_wait  0x%lx value %d",
                  VG_(get_running_tid)(),
                  thread_get_running_tid(),
-                 semaphore);
+                 semaphore,
+                 p->value);
   }
   tl_assert(p);
   tl_assert((int)p->waiters >= 0);
@@ -205,10 +208,11 @@
   if (s_trace_semaphore)
   {
     VG_(message)(Vg_UserMsg,
-                 "[%d/%d] semaphore_post_wait 0x%lx",
+                 "[%d/%d] semaphore_post_wait 0x%lx value %d",
                  VG_(get_running_tid)(),
                  thread_get_running_tid(),
-                 semaphore);
+                 semaphore,
+                 p ? p->value - 1 : 0);
   }
   tl_assert(p->waiters > 0);
   p->waiters--;
@@ -241,16 +245,19 @@
 {
   struct semaphore_info* p;
 
+  p = semaphore_get_or_allocate(semaphore);
+  p->value++;
+
   if (s_trace_semaphore)
   {
     VG_(message)(Vg_UserMsg,
-                 "[%d/%d] semaphore_post      0x%lx",
+                 "[%d/%d] semaphore_post      0x%lx value %d",
                  VG_(get_running_tid)(),
                  thread_get_running_tid(),
-                 semaphore);
+                 semaphore,
+                 p->value);
   }
-  p = semaphore_get_or_allocate(semaphore);
-  p->value++;
+
   if (p->value == 1)
   {
     p->last_sem_post_tid = tid;
