diff --git a/pgadmin/frm/frmRestore.cpp b/pgadmin/frm/frmRestore.cpp
index 1657477..a94da04 100644
--- a/pgadmin/frm/frmRestore.cpp
+++ b/pgadmin/frm/frmRestore.cpp
@@ -687,6 +687,12 @@ void frmRestore::OnEndProcess(wxProcessEvent &ev)
 				currentSchema = name;
 				lastItem = currentSchemaNode = ctvObjects->AppendItem(root, wxT("Schema ") + name, 1);
 			}
+			else if (type == wxT("EXTENSION") && (schema == wxT("-") || schema.IsEmpty()))
+			{
+				lastItem = ctvObjects->AppendItem(root,
+						owner.IsEmpty() ? wxT("Extension ") + name :
+						wxT("Extension ") + name + wxT("[") + _("owner") + wxT(": ") + owner + wxT("]"), 1);
+			}
 			else
 			{
 				if (schema != currentSchema)
@@ -715,7 +721,9 @@ void frmRestore::OnEndProcess(wxProcessEvent &ev)
 						wxLogError(_("Schema node not found for object ") + type + wxT(" ") + name + wxT(" [") + _("owner") + wxT(": ") + owner + wxT("]"));
 					}
 				}
-				lastItem = ctvObjects->AppendItem(currentSchemaNode, type + wxT(" ") + name + wxT(" [") + _("owner") + wxT(": ") + owner + wxT("]"), 1);
+				lastItem = ctvObjects->AppendItem(currentSchemaNode,
+						owner.IsEmpty() ? type + wxT(" ") + name :
+						type + wxT(" ") + name + wxT(" [") + _("owner") + wxT(": ") + owner + wxT("]"), 1);
 			}
 			ctvObjects->SetItemData(lastItem, new restoreTreeItemData(numberOfTOCItems, str));
 			numberOfTOCItems++;
