--- setup_native/source/win32/customactions/reg4msdoc/registrationcontextinformation.hxx
+++ setup_native/source/win32/customactions/reg4msdoc/registrationcontextinformation.hxx
@@ -42,6 +42,14 @@
 	std::wstring GetWordDocumentDefaultIconEntry() const;
 	std::wstring GetWordDocumentDefaultShellCommand() const;
 
+	/** MOOX Word document information		
+		The icon index is the index of the icon 
+		in soffice.exe to be associated with 
+		word document files
+	*/
+	std::wstring GetMOOXWordDocumentDisplayName() const;
+	std::wstring GetMOOXWordDocumentFileExtension() const;
+
 	/** Word template information
 		The icon index is the index of the icon 
 		in soffice.exe to be associated with 
@@ -72,6 +72,9 @@
 	std::wstring GetExcelSheetDefaultIconEntry() const;
 	std::wstring GetExcelSheetDefaultShellCommand() const;
 
+	std::wstring GetMOOXExcelSheetDisplayName() const;
+	std::wstring GetMOOXExcelSheetFileExtension() const;
+
 	/** Excel template information
 		The icon index is the index of the icon 
 		in soffice.exe to be associated with 
@@ -92,6 +92,9 @@
 	std::wstring GetPowerPointDocumentDefaultIconEntry() const;
 	std::wstring GetPowerPointDocumentDefaultShellCommand() const;
 
+	std::wstring GetMOOXPowerPointDocumentDisplayName() const;
+	std::wstring GetMOOXPowerPointDocumentFileExtension() const;
+
 	/** PowerPoint template information
 		The icon index is the index of the icon 
 		in soffice.exe to be associated with 
dummy line to avoid confusing diff-mode
--- setup_native/source/win32/customactions/reg4msdoc/registrationcontextinformation.cxx
+++ setup_native/source/win32/customactions/reg4msdoc/registrationcontextinformation.cxx
@@ -59,6 +59,18 @@
 	return std::wstring(TEXT("open"));
 }
 
+std::wstring RegistrationContextInformation::GetMOOXWordDocumentDisplayName() const
+{	
+	std::wstring str;
+	str = TEXT("Microsoft Word 2007 Document");
+	return str;
+}
+
+std::wstring RegistrationContextInformation::GetMOOXWordDocumentFileExtension() const
+{
+	return std::wstring(TEXT(".docx"));
+}
+
 std::wstring RegistrationContextInformation::GetWordTemplateDisplayName() const
 {
 	std::wstring str;
@@ -131,6 +131,18 @@
 	return std::wstring(TEXT("open"));
 }
 
+std::wstring RegistrationContextInformation::GetMOOXExcelSheetDisplayName() const
+{	
+	std::wstring str;
+	str = TEXT("Microsoft Excel 2007 Spreadsheet");
+	return str;
+}
+
+std::wstring RegistrationContextInformation::GetMOOXExcelSheetFileExtension() const
+{
+	return std::wstring(TEXT(".xlsx"));
+}
+
 std::wstring RegistrationContextInformation::GetExcelTemplateDisplayName() const
 {
 	std::wstring str;
@@ -179,6 +179,18 @@
 	return std::wstring(TEXT("open"));
 }
 
+std::wstring RegistrationContextInformation::GetMOOXPowerPointDocumentDisplayName() const
+{	
+	std::wstring str;
+	str = TEXT("Microsoft Excel 2007 Presentation");
+	return str;
+}
+
+std::wstring RegistrationContextInformation::GetMOOXPowerPointDocumentFileExtension() const
+{
+	return std::wstring(TEXT(".pptx"));
+}
+
 std::wstring RegistrationContextInformation::GetPowerPointTemplateDisplayName() const
 {
 	std::wstring str;
dummy line to avoid confusing diff-mode
--- setup_native/source/win32/customactions/reg4msdoc/registrar.cxx
+++ setup_native/source/win32/customactions/reg4msdoc/registrar.cxx
@@ -68,6 +68,14 @@
         m_ContextInformation.ShellNewCommandDisplayName(),
         RegistrationContextInformation::Writer);
 	
+    RegisterForMsOfficeApplication(
+        m_ContextInformation.GetMOOXWordDocumentFileExtension(),
+        m_ContextInformation.GetMOOXWordDocumentDisplayName(),
+        m_ContextInformation.GetWordDocumentDefaultIconEntry(),
+        m_ContextInformation.GetWordDocumentDefaultShellCommand(),
+        m_ContextInformation.ShellNewCommandDisplayName(),
+        RegistrationContextInformation::Writer);
+	
     RegisterForMsOfficeApplication(
         m_ContextInformation.GetWordTemplateFileExtension(),
         m_ContextInformation.GetWordTemplateDisplayName(),
@@ -99,6 +99,14 @@
 	catch(RegistryKeyNotFoundException&)
 	{}
 
+	try
+	{
+		UnregisterForMsOfficeApplication(
+			m_ContextInformation.GetMOOXWordDocumentFileExtension());
+	}
+	catch(RegistryKeyNotFoundException&)
+	{}
+
 	try
 	{
 		UnregisterForMsOfficeApplication(
@@ -165,6 +165,14 @@
 		m_ContextInformation.ShellNewCommandDisplayName(),
         RegistrationContextInformation::Calc);
 
+    RegisterForMsOfficeApplication(
+        m_ContextInformation.GetMOOXExcelSheetFileExtension(),
+        m_ContextInformation.GetMOOXExcelSheetDisplayName(),
+        m_ContextInformation.GetExcelSheetDefaultIconEntry(),
+        m_ContextInformation.GetExcelSheetDefaultShellCommand(),
+        m_ContextInformation.ShellNewCommandDisplayName(),
+        RegistrationContextInformation::Calc);
+	
 	RegisterForMsOfficeApplication(
 		m_ContextInformation.GetExcelTemplateFileExtension(),
 		m_ContextInformation.GetExcelTemplateDisplayName(),
@@ -188,6 +188,14 @@
 	catch(RegistryKeyNotFoundException&)
 	{}
 
+	try
+	{
+		UnregisterForMsOfficeApplication(
+			m_ContextInformation.GetMOOXExcelSheetFileExtension());
+	}
+	catch(RegistryKeyNotFoundException&)
+	{}
+
 	try
 	{
 		UnregisterForMsOfficeApplication(
@@ -217,6 +217,14 @@
         m_ContextInformation.ShellNewCommandDisplayName(),
         RegistrationContextInformation::Impress);
             
+    RegisterForMsOfficeApplication(
+        m_ContextInformation.GetMOOXPowerPointDocumentFileExtension(),
+        m_ContextInformation.GetMOOXPowerPointDocumentDisplayName(),
+        m_ContextInformation.GetPowerPointDocumentDefaultIconEntry(),
+        m_ContextInformation.GetPowerPointDocumentDefaultShellCommand(),
+        m_ContextInformation.ShellNewCommandDisplayName(),
+        RegistrationContextInformation::Impress);
+	
     RegisterForMsOfficeApplication(
         m_ContextInformation.GetPowerPointShowFileExtension(),
         m_ContextInformation.GetPowerPointShowDisplayName(),
@@ -248,6 +248,14 @@
 	catch(RegistryKeyNotFoundException&)
 	{}
 
+	try
+	{
+		UnregisterForMsOfficeApplication(
+			m_ContextInformation.GetMOOXPowerPointDocumentFileExtension());
+	}
+	catch(RegistryKeyNotFoundException&)
+	{}
+
 	try
 	{
 		UnregisterForMsOfficeApplication(
dummy line to avoid confusing diff-mode
