diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc
index e5159c89..32eaacba 100644
--- a/src/abg-dwarf-reader.cc
+++ b/src/abg-dwarf-reader.cc
@@ -11648,8 +11648,12 @@ get_scope_for_die(read_context& ctxt,
 
   translation_unit::language die_lang = translation_unit::LANG_UNKNOWN;
   ctxt.get_die_language(die, die_lang);
-  if (is_c_language(die_lang))
+  if (is_c_language(die_lang)
+      || ctxt.die_parent_map(source_of_die).empty())
     {
+      // In units for the C languages all decls belong to the global
+      // namespace.  This is generally the case if Libabigail
+      // determined that no DIE -> parent map was needed.
       ABG_ASSERT(dwarf_tag(die) != DW_TAG_member);
       return ctxt.global_scope();
     }
diff --git a/tests/data/test-abidiff-exit/ld-2.28-210.so b/tests/data/test-abidiff-exit/ld-2.28-210.so
new file mode 100755
index 0000000000000000000000000000000000000000..a38a9ad9b4fbb9c464e848dacc1b12920de395be
GIT binary patch
diff --git a/tests/data/test-abidiff-exit/ld-2.28-211.so b/tests/data/test-abidiff-exit/ld-2.28-211.so
new file mode 100755
index 0000000000000000000000000000000000000000..a245b2b4a063dfe8950cc2a2909653ca4f5e0266
GIT binary patch
diff --git a/tests/data/test-abidiff-exit/test-ld-2.28-210.so--ld-2.28-211.so.txt b/tests/data/test-abidiff-exit/test-ld-2.28-210.so--ld-2.28-211.so.txt
new file mode 100644
index 00000000..16d4dc97
--- /dev/null
+++ b/tests/data/test-abidiff-exit/test-ld-2.28-210.so--ld-2.28-211.so.txt
@@ -0,0 +1,16 @@
+Functions changes summary: 0 Removed, 0 Changed, 0 Added function
+Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
+
+1 Changed variable:
+
+  [C] 'rtld_global_ro _rtld_global_ro' was changed at ldsodefs.h:675:1:
+    type of variable changed:
+      type size hasn't changed
+      6 data member changes:
+        'int (const char**, const char**, bool*, void (void*)*, void*)* _dl_catch_error' offset changed from 5120 to 5376 (in bits) (by +256 bits)
+        'void (void*)* _dl_error_free' offset changed from 5184 to 5440 (in bits) (by +256 bits)
+        'void* (link_map*)* _dl_tls_get_addr_soft' offset changed from 5248 to 5120 (in bits) (by -128 bits)
+        'int ()* _dl_discover_osversion' offset changed from 5312 to 5184 (in bits) (by -128 bits)
+        'audit_ifaces* _dl_audit' offset changed from 5376 to 5248 (in bits) (by -128 bits)
+        'unsigned int _dl_naudit' offset changed from 5440 to 5312 (in bits) (by -128 bits)
+
diff --git a/tests/test-abidiff-exit.cc b/tests/test-abidiff-exit.cc
index 12c3ec93..0ba99992 100644
--- a/tests/test-abidiff-exit.cc
+++ b/tests/test-abidiff-exit.cc
@@ -448,6 +448,17 @@ InOutSpec in_out_specs[] =
     abigail::tools_utils::ABIDIFF_ABI_CHANGE,
     "data/test-abidiff-exit/test-PR29144-report-2.txt",
     "output/test-abidiff-exit/test-PR29144-report-2.txt"
+  },
+    {
+    "data/test-abidiff-exit/ld-2.28-210.so",
+    "data/test-abidiff-exit/ld-2.28-211.so",
+    "",
+    "",
+    "",
+    "--no-default-suppression",
+    abigail::tools_utils::ABIDIFF_ABI_CHANGE,
+    "data/test-abidiff-exit/test-ld-2.28-210.so--ld-2.28-211.so.txt",
+    "output/test-abidiff-exit/test-ld-2.28-210.so--ld-2.28-211.so.txt"
   },
   {0, 0, 0 ,0, 0, 0, abigail::tools_utils::ABIDIFF_OK, 0, 0}
 };
