diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c
index cd7669b..dfe50fc 100644
--- a/src/bin/pg_dump/pg_backup_archiver.c
+++ b/src/bin/pg_dump/pg_backup_archiver.c
@@ -547,8 +547,40 @@ restore_toc_entry(ArchiveHandle *AH, TocEntry *te,
 
 	if ((reqs & REQ_SCHEMA) != 0)		/* We want the schema */
 	{
-		ahlog(AH, 1, "creating %s %s\n", te->desc, te->tag);
+		char *p = NULL;
 
+		/* For the following operations, prepend the schema to the object name */
+		if(te->namespace &&
+		   (strcmp(te->desc, "AGGREGATE") == 0 ||
+			strcmp(te->desc, "COLLATION") == 0 ||
+			strcmp(te->desc, "CONVERSION") == 0 ||
+			strcmp(te->desc, "DOMAIN") == 0 ||
+			strcmp(te->desc, "FOREIGN TABLE") == 0 ||
+			strcmp(te->desc, "FUNCTION") == 0 ||
+			strcmp(te->desc, "MATERIALIZED VIEW") == 0 ||
+			strcmp(te->desc, "OPERATOR") == 0 ||
+			strcmp(te->desc, "OPERATOR CLASS") == 0 ||
+			strcmp(te->desc, "OPERATOR FAMILY") == 0 ||
+			strcmp(te->desc, "SEQUENCE") == 0 ||
+			strcmp(te->desc, "TABLE") == 0 ||
+			strcmp(te->desc, "TEXT SEARCH DICTIONARY") == 0 ||
+			strcmp(te->desc, "TEXT SEARCH CONFIGURATION") == 0 ||
+			strcmp(te->desc, "TEXT SEARCH PARSER") == 0 ||
+			strcmp(te->desc, "TEXT SEARCH TEMPLATE") == 0 ||
+			strcmp(te->desc, "TYPE") == 0 ||
+			strcmp(te->desc, "VIEW") == 0 )
+			)
+		{
+			int bSize = strlen(te->namespace) + strlen(te->tag) + 2;
+			p = (char *) pg_malloc(bSize);
+			
+			snprintf(p, bSize, "%s.%s", te->namespace, te->tag);
+		}
+		else {
+			p = pg_strdup(te->tag);
+		}
+
+		ahlog(AH, 1, "creating %s %s\n", te->desc, p);
 		_printTocEntry(AH, te, ropt, false, false);
 		defnDumped = true;
 
@@ -633,7 +665,8 @@ restore_toc_entry(ArchiveHandle *AH, TocEntry *te,
 					_becomeOwner(AH, te);
 					_selectOutputSchema(AH, te->namespace);
 
-					ahlog(AH, 1, "processing data for table \"%s\"\n",
+					ahlog(AH, 1, "processing data for table \"%s.%s\"\n",
+						  te->namespace,
 						  te->tag);
 
 					/*
