Index: src/Virtual/Tables.cc
===================================================================
--- src/Virtual/Tables.cc	(revision b91bfde656fcd8611f897a2018e6837168d658b4)
+++ src/Virtual/Tables.cc	(revision 00e9be94eec3b41099f7decdab5a57d6edea62ed)
@@ -10,6 +10,6 @@
 // Created On       : Mon Aug 31 11:11:00 2020
 // Last Modified By : Andrew Beach
-// Last Modified On : Thr Apr  8 15:51:00 2021
-// Update Count     : 1
+// Last Modified On : Wed Apr 21 15:36:00 2021
+// Update Count     : 2
 //
 
@@ -50,4 +50,8 @@
 }
 
+std::string concurrentDefaultVTableName() {
+	return "_default_vtable";
+}
+
 bool isVTableInstanceName( std::string const & name ) {
 	// There are some delicate length calculations here.
@@ -57,6 +61,6 @@
 
 static ObjectDecl * makeVtableDeclaration(
+		std::string const & name,
 		StructInstType * type, Initializer * init ) {
-	std::string const & name = instanceName( type->name );
 	Type::StorageClasses storage = noStorageClasses;
 	if ( nullptr == init ) {
@@ -73,11 +77,12 @@
 }
 
-ObjectDecl * makeVtableForward( StructInstType * type ) {
+ObjectDecl * makeVtableForward( std::string const & name, StructInstType * type ) {
 	assert( type );
-	return makeVtableDeclaration( type, nullptr );
+	return makeVtableDeclaration( name, type, nullptr );
 }
 
 ObjectDecl * makeVtableInstance(
-		StructInstType * vtableType, Type * objectType, Initializer * init ) {
+		std::string const & name, StructInstType * vtableType,
+		Type * objectType, Initializer * init ) {
 	assert( vtableType );
 	assert( objectType );
@@ -115,5 +120,5 @@
 		assert(false);
 	}
-	return makeVtableDeclaration( vtableType, init );
+	return makeVtableDeclaration( name, vtableType, init );
 }
 
@@ -167,8 +172,4 @@
 }
 
-ObjectDecl * makeTypeIdForward() {
-	return nullptr;
-}
-
 Attribute * linkonce( const std::string & subsection ) {
 	const std::string section = ".gnu.linkonce." + subsection;
Index: src/Virtual/Tables.h
===================================================================
--- src/Virtual/Tables.h	(revision b91bfde656fcd8611f897a2018e6837168d658b4)
+++ src/Virtual/Tables.h	(revision 00e9be94eec3b41099f7decdab5a57d6edea62ed)
@@ -10,6 +10,6 @@
 // Created On       : Mon Aug 31 11:07:00 2020
 // Last Modified By : Andrew Beach
-// Last Modified On : Thr Apr  8 15:55:00 2021
-// Update Count     : 1
+// Last Modified On : Wed Apr 21 10:30:00 2021
+// Update Count     : 2
 //
 
@@ -27,12 +27,16 @@
 std::string instanceName( std::string const & vtable_name );
 std::string vtableInstanceName( std::string const & type_name );
+std::string concurrentDefaultVTableName();
 bool isVTableInstanceName( std::string const & name );
 
-ObjectDecl * makeVtableForward( StructInstType * vtableType );
+ObjectDecl * makeVtableForward(
+	std::string const & name, StructInstType * vtableType );
 /* Create a forward declaration of a vtable of the given type.
  * vtableType node is consumed.
  */
 
-ObjectDecl * makeVtableInstance( StructInstType * vtableType, Type * objectType,
+ObjectDecl * makeVtableInstance(
+	std::string const & name,
+	StructInstType * vtableType, Type * objectType,
 	Initializer * init = nullptr );
 /* Create an initialized definition of a vtable.
