diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 13bfd2c..b6b913e 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -1391,14 +1391,21 @@ selectDumpableTable(TableInfo *tbinfo, Archive *fout)
 
 	/*
 	 * If specific tables are being dumped, dump just those tables; else, dump
-	 * according to the parent namespace's dump flag.
+	 * according to the parent namespace's dump flag. Note that the parent
+	 * namespace may be itself part of an extension, but not the table, in
+	 * which case its content needs to be explicitely dumped.
 	 */
 	if (table_include_oids.head != NULL)
 		tbinfo->dobj.dump = simple_oid_list_member(&table_include_oids,
 												   tbinfo->dobj.catId.oid) ?
 			DUMP_COMPONENT_ALL : DUMP_COMPONENT_NONE;
 	else
-		tbinfo->dobj.dump = tbinfo->dobj.namespace->dobj.dump_contains;
+	{
+		if (checkExtensionMembership(&tbinfo->dobj.namespace->dobj, fout))
+			tbinfo->dobj.dump = DUMP_COMPONENT_ALL;
+		else
+			tbinfo->dobj.dump = tbinfo->dobj.namespace->dobj.dump_contains;
+	}
 
 	/*
 	 * In any case, a table can be excluded by an exclusion switch
