diff --git a/drd/drd_bitmap.c b/drd/drd_bitmap.c
index 8e0e4c0..1d97d7b 100644
--- a/drd/drd_bitmap.c
+++ b/drd/drd_bitmap.c
@@ -129,7 +129,7 @@
    Addr b, b_next;
 
    tl_assert(bm);
-   tl_assert(a1 < a2);
+   tl_assert(a1 <= a2);
    tl_assert(a2 < first_address_with_higher_msb(a2));
    tl_assert(a1 == first_address_with_same_lsb(a1));
    tl_assert(a2 == first_address_with_same_lsb(a2));
@@ -226,7 +226,7 @@
    Addr b, b_next;
 
    tl_assert(bm);
-   tl_assert(a1 < a2);
+   tl_assert(a1 <= a2);
    tl_assert(a2 < first_address_with_higher_msb(a2));
    tl_assert(a1 == first_address_with_same_lsb(a1));
    tl_assert(a2 == first_address_with_same_lsb(a2));
diff --git a/drd/drd_clientobj.c b/drd/drd_clientobj.c
index 780b793..e3b6a94 100644
--- a/drd/drd_clientobj.c
+++ b/drd/drd_clientobj.c
@@ -107,7 +107,7 @@
 {
    DrdClientobj *p;
 
-   tl_assert(a1 < a2);
+   tl_assert(a1 <= a2);
    VG_(OSetGen_ResetIter)(s_clientobj_set);
    for ( ; (p = VG_(OSetGen_Next)(s_clientobj_set)) != 0; )
    {
diff --git a/drd/drd_main.c b/drd/drd_main.c
index cc019af..92b38c0 100644
--- a/drd/drd_main.c
+++ b/drd/drd_main.c
@@ -288,7 +288,7 @@
 void drd_start_using_mem(const Addr a1, const SizeT len,
                          const Bool is_stack_mem)
 {
-   tl_assert(a1 < a1 + len);
+   tl_assert(a1 <= a1 + len);
 
    if (!is_stack_mem && s_trace_alloc)
       VG_(message)(Vg_UserMsg, "Started using memory range 0x%lx + %ld%s\n",
@@ -326,7 +326,7 @@
 {
    const Addr a2 = a1 + len;
 
-   tl_assert(a1 < a2);
+   tl_assert(a1 <= a2);
 
    if (UNLIKELY(DRD_(any_address_is_traced)()))
       DRD_(trace_mem_access)(a1, len, eEnd);
diff --git a/drd/drd_suppression.c b/drd/drd_suppression.c
index cfe4b03..bb12b9f 100644
--- a/drd/drd_suppression.c
+++ b/drd/drd_suppression.c
@@ -69,7 +69,7 @@
                    a1, a2 - a1, reason);
    }
 
-   tl_assert(a1 < a2);
+   tl_assert(a1 <= a2);
    DRD_(bm_access_range_store)(DRD_(s_suppressed), a1, a2);
 }
 
@@ -82,7 +82,7 @@
       VG_(get_and_pp_StackTrace)(VG_(get_running_tid)(), 12);
    }
 
-   tl_assert(a1 < a2);
+   tl_assert(a1 <= a2);
    DRD_(bm_clear_store)(DRD_(s_suppressed), a1, a2);
 }
 
@@ -118,7 +118,7 @@
 
 void DRD_(start_tracing_address_range)(const Addr a1, const Addr a2)
 {
-   tl_assert(a1 < a2);
+   tl_assert(a1 <= a2);
 
    DRD_(bm_access_range_load)(DRD_(s_traced), a1, a2);
    if (! DRD_(g_any_address_traced))
@@ -129,7 +129,7 @@
 
 void DRD_(stop_tracing_address_range)(const Addr a1, const Addr a2)
 {
-   tl_assert(a1 < a2);
+   tl_assert(a1 <= a2);
 
    DRD_(bm_clear_load)(DRD_(s_traced), a1, a2);
    if (DRD_(g_any_address_traced))
@@ -160,7 +160,7 @@
       }
    }
    tl_assert(a1);
-   tl_assert(a1 < a2);
+   tl_assert(a1 <= a2);
    DRD_(bm_clear)(DRD_(s_suppressed), a1, a2);
    DRD_(bm_clear)(DRD_(s_traced), a1, a2);
 }
diff --git a/drd/tests/unit_bitmap.c b/drd/tests/unit_bitmap.c
index 280943c..236cf06 100644
--- a/drd/tests/unit_bitmap.c
+++ b/drd/tests/unit_bitmap.c
@@ -63,6 +63,7 @@
 static
 struct { Addr address; SizeT size; BmAccessTypeT access_type; }
   s_test1_args[] = {
+    {                           0, 0, eLoad  },
     {                           0, 1, eLoad  },
     {                         666, 4, eLoad  },
     {                         667, 2, eStore },
