diff --git a/source/java/org/openoffice/da/comp/w2lcommon/helper/DialogAccess.java b/source/java/org/openoffice/da/comp/w2lcommon/helper/DialogAccess.java
index daefbcb..1386dea 100644
--- a/source/java/org/openoffice/da/comp/w2lcommon/helper/DialogAccess.java
+++ b/source/java/org/openoffice/da/comp/w2lcommon/helper/DialogAccess.java
@@ -20,7 +20,7 @@
  *
  *  All Rights Reserved.
  * 
- *  Version 1.2 (2009-09-06)
+ *  Version 1.2 (2009-11-02)
  *
  */ 
 
@@ -70,6 +70,17 @@ public class DialogAccess {
     }
 
     
+    public boolean getControlEnabled(String sControlName) {
+        XPropertySet xPropertySet = getControlProperties(sControlName);
+        try {
+            return ((Boolean) xPropertySet.getPropertyValue("Enabled")).booleanValue();
+        }
+        catch (Exception e) {
+            // Will fail if the control does not exist
+        	return false;
+        }
+    }
+	
     public void setControlEnabled(String sControlName, boolean bEnabled) {
         XPropertySet xPropertySet = getControlProperties(sControlName);
         try {
diff --git a/source/java/org/openoffice/da/comp/writer2latex/ConfigurationDialog.java b/source/java/org/openoffice/da/comp/writer2latex/ConfigurationDialog.java
index c078755..753e074 100644
--- a/source/java/org/openoffice/da/comp/writer2latex/ConfigurationDialog.java
+++ b/source/java/org/openoffice/da/comp/writer2latex/ConfigurationDialog.java
@@ -20,7 +20,7 @@
  *
  *  All Rights Reserved.
  * 
- *  Version 1.2 (2009-09-27)
+ *  Version 1.2 (2009-11-02)
  *
  */ 
  
@@ -68,15 +68,25 @@ import org.openoffice.da.comp.w2lcommon.helper.DialogAccess;
  */
 public final class ConfigurationDialog extends WeakBase
     implements XServiceInfo, XContainerWindowEventHandler {
+	
+	private String[] sFamilyNames = { "text", "paragraph", "paragraph-block", "list", "listitem" };
+	private String[] sAttributeNames = { "bold", "italics", "small-caps", "superscript", "subscipt" };
 
     private XComponentContext xContext;
     private XSimpleFileAccess2 sfa2;
     private String sConfigFileName = null;
     Config config;
     // Local cache of complex options
-    // ComplexOption paragraphMap = ... osv.
-    ComplexOption mathSymbols = new ComplexOption();
-    ComplexOption stringReplace = new ComplexOption();
+    ComplexOption[] styleMap;
+    ComplexOption attributeMap;
+    ComplexOption headingMap;
+    ComplexOption mathSymbols;
+    ComplexOption stringReplace;
+    short nCurrentFamily = -1;
+    String sCurrentStyleName = null;
+    short nCurrentAttribute = -1;
+    short nCurrentMaxLevel = -1;
+    short nCurrentWriterLevel = 0;
     String sCurrentMathSymbol = null;
     String sCurrentText = null;
     private String sTitle = null;
@@ -119,6 +129,14 @@ public final class ConfigurationDialog extends WeakBase
         
         // Create the configuration
         config = ConverterFactory.createConverter("application/x-latex").getConfig();
+        
+        // Initialize the local cache of complex options
+        styleMap = new ComplexOption[5];
+        for (int i=0; i<5; i++) { styleMap[i]=new ComplexOption(); }
+        attributeMap = new ComplexOption();
+        headingMap = new ComplexOption();
+        mathSymbols = new ComplexOption();
+        stringReplace = new ComplexOption();
     }
         	
     // Implement XContainerWindowEventHandler
@@ -134,60 +152,107 @@ public final class ConfigurationDialog extends WeakBase
             }
             // Documentclass page
             else if (sMethod.equals("NoPreambleChange")) {
-                enableDocumentclassControls();
+                updateDocumentclassControls();
                 return true;
             }
             // Headings page
             else if (sMethod.equals("MaxLevelChange")) {
-                enableHeadingsControls();
+            	saveHeadings();
+                updateHeadingsControls();
+                return true;
+            }
+            else if (sMethod.equals("WriterLevelChange")) {
+            	saveHeadings();
+                updateHeadingsControls();
+                return true;
+            }
+            else if (sMethod.equals("NoIndexChange")) {
+                updateHeadingsControls();
                 return true;
             }
             // Styles page
-            // Formatting page
-            else if (sMethod.equals("FormattingChange")) {
-            	enableFormattingControls();
-                return true;
+            else if (sMethod.equals("StyleFamilyChange")) {
+            	saveStyles();
+            	updateStylesControls();
+            	return true;
             }
-            else if (sMethod.equals("UseColorChange")) {
-            	enableFormattingControls();
-                return true;
+            else if (sMethod.equals("StyleNameChange")) {
+            	saveStyles();
+            	updateStylesControls();
+            	return true;
             }
+            else if (sMethod.equals("NewStyleClick")) {
+            	if (nCurrentFamily>-1) {
+            		String sNewName = appendItem("StyleName");
+            		if (sNewName!=null) {
+            			Map<String,String> attr = new HashMap<String,String>();
+            			attr.put("before", "");
+            			attr.put("after", "");
+            			attr.put("after", "");
+            			attr.put("verbatim", "");
+            			attr.put("line-break","");
+            			styleMap[nCurrentFamily].put(sNewName, attr);
+            		}
+            		saveStyles();
+            		updateStylesControls();
+            	}
+            	return true;
+            }
+            else if (sMethod.equals("DeleteStyleClick")) {
+            	if (nCurrentFamily>-1 && sCurrentStyleName!=null) {
+            		if (deleteCurrentItem("StyleName")) {
+            			styleMap[nCurrentFamily].remove(sCurrentStyleName);
+                		updateStylesControls();
+            		}
+            	}
+            	return true;
+            }
+            // Characters page
             else if (sMethod.equals("UseSoulChange")) {
-            	enableFormattingControls();
+            	updateCharactersControls();
+                return true;
+            }
+            else if (sMethod.equals("FormattingAttributeChange")) {
+            	saveCharacters();
+            	updateCharactersControls();
+                return true;
+            }
+            else if (sMethod.equals("CustomAttributeChange")) {
+            	updateCharactersControls();
                 return true;
             }
             // Fonts page
             // Pages page
             else if (sMethod.equals("ExportGeometryChange")) {
-            	enablePagesControls();
+            	updatePagesControls();
                 return true;
             }
             else if (sMethod.equals("ExportHeaderAndFooterChange")) {
-            	enablePagesControls();
+            	updatePagesControls();
                 return true;
             }
             // Tables page
             else if (sMethod.equals("NoTablesChange")) {
-            	enableTablesControls();
+            	updateTablesControls();
             	return true;
             }
             else if (sMethod.equals("UseSupertabularChange")) {
-            	enableTablesControls();
+            	updateTablesControls();
             	return true;
             }
             else if (sMethod.equals("UseLongtableChange")) {
-            	enableTablesControls();
+            	updateTablesControls();
             	return true;
             }
             // Figures page
             else if (sMethod.equals("NoImagesChange")) {
-            	enableFiguresControls();
+            	updateFiguresControls();
             	return true;
             }
             // Text and math page
             else if (sMethod.equals("MathSymbolNameChange")) {
             	saveTextAndMath();
-            	enableTextAndMathControls();
+            	updateTextAndMathControls();
             	return true;
             }
             else if (sMethod.equals("NewSymbolClick")) {
@@ -198,19 +263,19 @@ public final class ConfigurationDialog extends WeakBase
             		mathSymbols.put(sNewName, attr);
             	}
             	saveTextAndMath();
-            	enableTextAndMathControls();
+            	updateTextAndMathControls();
             	return true;
             }
             else if (sMethod.equals("DeleteSymbolClick")) {
             	if (deleteCurrentItem("MathSymbolName")) {
             		mathSymbols.remove(sCurrentMathSymbol);
-            		enableTextAndMathControls();
+            		updateTextAndMathControls();
             	}
             	return true;
             }
             else if (sMethod.equals("TextInputChange")) {
             	saveTextAndMath();
-            	enableTextAndMathControls();
+            	updateTextAndMathControls();
             	return true;
             }
             else if (sMethod.equals("NewTextClick")) {
@@ -222,13 +287,13 @@ public final class ConfigurationDialog extends WeakBase
             		stringReplace.put(sNewName, attr);
             	}
             	saveTextAndMath();
-            	enableTextAndMathControls();
+            	updateTextAndMathControls();
             	return true;
             }
             else if (sMethod.equals("DeleteTextClick")) {
             	if (deleteCurrentItem("TextInput")) {
             		stringReplace.remove(sCurrentText);
-            		enableTextAndMathControls();
+            		updateTextAndMathControls();
             	}
             	return true;
             }            
@@ -245,8 +310,9 @@ public final class ConfigurationDialog extends WeakBase
     public String[] getSupportedMethodNames() {
         String[] sNames = { "external_event", 
         		"NoPreambleChange", // Documentclass
-        		"MaxLevelChange", // Headings
-        		"FormattingChange", "UseColorChange", "UseSoulChange", // Formatting
+        		"MaxLevelChange", "WriterLevelChange", "NoIndexChange", // Headings
+        		"StyleFamilyChange", "StyleNameChange", "NewStyleClick", "DeleteStyleClick", // Styles
+        		"UseSoulChange", "FormattingAttributeChange", "CustomAttributeChange", // Characters
         		"ExportGeometryChange", "ExportHeaderAndFooterChange", // Pages
         		"NoTablesChange", "UseSupertabularChange", "UseLongtableChange", // Tables
         		"NoImagesChange", // Images
@@ -278,6 +344,19 @@ public final class ConfigurationDialog extends WeakBase
     		if (sMethod.equals("ok")) {
     			loadConfig();
     			getControls();
+    			for (int i=0; i<5; i++) {
+    				config.getComplexOption(sFamilyNames[i]+"-map").clear();
+    				config.getComplexOption(sFamilyNames[i]+"-map").copyAll(styleMap[i]);
+    			}
+    			config.getComplexOption("text-attribute-map").clear();
+    			config.getComplexOption("text-attribute-map").copyAll(attributeMap);
+    			if (nCurrentMaxLevel>-1) {
+    				for (int i=nCurrentMaxLevel+1; i<11; i++) {
+    					headingMap.remove(Integer.toString(i));
+    				}
+    			}
+    			config.getComplexOption("heading-map").clear();
+    			config.getComplexOption("heading-map").copyAll(headingMap);
     			config.getComplexOption("math-symbol-map").clear();
     			config.getComplexOption("math-symbol-map").copyAll(mathSymbols);
     			config.getComplexOption("string-replace").clear();
@@ -286,6 +365,14 @@ public final class ConfigurationDialog extends WeakBase
     			return true;
     		} else if (sMethod.equals("back") || sMethod.equals("initialize")) {
     			loadConfig();
+    			for (int i=0; i<5; i++) {
+    				styleMap[i].clear();
+    				styleMap[i].copyAll(config.getComplexOption(sFamilyNames[i]+"-map"));
+    			}
+    			attributeMap.clear();
+    			attributeMap.copyAll(config.getComplexOption("text-attribute-map"));
+    			headingMap.clear();
+    			headingMap.copyAll(config.getComplexOption("heading-map"));
     			mathSymbols.clear();
     			mathSymbols.copyAll(config.getComplexOption("math-symbol-map"));
     			stringReplace.clear();
@@ -452,8 +539,8 @@ public final class ConfigurationDialog extends WeakBase
     	else if ("Styles".equals(sTitle)) {
     		loadStyles();
     	}
-    	else if ("Formatting".equals(sTitle)) {
-    		loadFormatting();
+    	else if ("Characters".equals(sTitle)) {
+    		loadCharacters();
     	}
     	else if ("Fonts".equals(sTitle)) {
     		loadFonts();
@@ -483,8 +570,8 @@ public final class ConfigurationDialog extends WeakBase
     	else if ("Styles".equals(sTitle)) {
     		saveStyles();
     	}
-    	else if ("Formatting".equals(sTitle)) {
-    		saveFormatting();
+    	else if ("Characters".equals(sTitle)) {
+    		saveCharacters();
     	}
     	else if ("Fonts".equals(sTitle)) {
     		saveFonts();
@@ -511,7 +598,7 @@ public final class ConfigurationDialog extends WeakBase
     	dlg.setTextFieldText("Documentclass",config.getOption("documentclass"));
     	dlg.setTextFieldText("GlobalOptions",config.getOption("global_options"));
     	dlg.setTextFieldText("CustomPreamble",config.getOption("custom-preamble"));
-    	enableDocumentclassControls();
+    	updateDocumentclassControls();
     }
     
     private void saveDocumentclass() {
@@ -521,7 +608,7 @@ public final class ConfigurationDialog extends WeakBase
     	config.setOption("custom-preamble", dlg.getTextFieldText("CustomPreamble"));
     }
 
-    private void enableDocumentclassControls() {
+    private void updateDocumentclassControls() {
     	boolean bPreamble = !dlg.getCheckBoxStateAsBoolean("NoPreamble");
     	dlg.setControlEnabled("DocumentclassLabel",bPreamble);
     	dlg.setControlEnabled("Documentclass",bPreamble);
@@ -532,50 +619,87 @@ public final class ConfigurationDialog extends WeakBase
     }
     
     // The page "Headings"
-    // This page handles the heading map as well as the option no_index
+    // This page handles the heading map as well as the options no_index, use_titlesec and use_titletoc
     
     private void loadHeadings() {
-    	// TODO: Load heading map
+    	// Determine the max level (from 0 to 10)
+    	Set<String> writerLevels = headingMap.keySet();
+    	nCurrentMaxLevel = 0;
+    	while(nCurrentMaxLevel<10 && writerLevels.contains(Integer.toString(nCurrentMaxLevel+1))) {
+    		nCurrentMaxLevel++;
+    	}
+    	dlg.setListBoxSelectedItem("MaxLevel", nCurrentMaxLevel);
+    	
+    	dlg.setCheckBoxStateAsBoolean("UseTitlesec","true".equals(config.getOption("use_titlesec")));
     	dlg.setCheckBoxStateAsBoolean("NoIndex","true".equals(config.getOption("no_index")));
-    	enableHeadingsControls();
+    	dlg.setCheckBoxStateAsBoolean("UseTitletoc","true".equals(config.getOption("use_titletoc")));
+
+    	updateHeadingsControls();
     }
     
     private void saveHeadings() {
-    	// TODO: Save heading map
-    	config.setOption("no_index", Boolean.toString(dlg.getCheckBoxStateAsBoolean("NoIndex")));    	
+    	// Save the current writer level in our cache
+    	if (nCurrentWriterLevel>-1) {
+    		Map<String,String> attr = new HashMap<String,String>();
+    		attr.put("name", dlg.getComboBoxText("LaTeXName"));
+    		attr.put("level", dlg.getComboBoxText("LaTeXLevel"));
+    		headingMap.put(Integer.toString(nCurrentWriterLevel+1), attr);
+    	}
+
+    	config.setOption("use_titlesec", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseTitlesec")));    	
+    	config.setOption("no_index", Boolean.toString(dlg.getCheckBoxStateAsBoolean("NoIndex")));
+    	config.setOption("use_titletoc", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseTitletoc")));    		
     }
     
-    private void enableHeadingsControls() {
-    	boolean bEnable = dlg.getListBoxSelectedItem("MaxLevel")>0;
-    	dlg.setControlEnabled("WriterLevelLabel", bEnable);
-    	dlg.setControlEnabled("WriterLevel", bEnable);
-    	dlg.setControlEnabled("LaTeXLevelLabel", bEnable);
-    	dlg.setControlEnabled("LaTeXLevel", bEnable);
-    	dlg.setControlEnabled("LaTeXNameLabel", bEnable);
-    	dlg.setControlEnabled("LaTeXName", bEnable);
+    private void updateHeadingsControls() {
+    	// Adjust the presented writer levels to the max level
+    	nCurrentMaxLevel = dlg.getListBoxSelectedItem("MaxLevel");
+    	nCurrentWriterLevel = dlg.getListBoxSelectedItem("WriterLevel");
+    	String[] sWriterLevels = new String[nCurrentMaxLevel];
+    	for (int i=0; i<nCurrentMaxLevel; i++) {
+    		sWriterLevels[i]=Integer.toString(i+1);
+    	}
+    	dlg.setListBoxStringItemList("WriterLevel", sWriterLevels);
+    	if (nCurrentWriterLevel+1>nCurrentMaxLevel) { nCurrentWriterLevel = (short)(nCurrentMaxLevel-1); }
+    	else if (nCurrentWriterLevel<0 && nCurrentMaxLevel>0) { nCurrentWriterLevel=0; }
+    	dlg.setListBoxSelectedItem("WriterLevel", nCurrentWriterLevel);
+    	
+    	// Load the values for the current level
+    	if (nCurrentWriterLevel>-1) {
+    		String sLevel = Integer.toString(nCurrentWriterLevel+1);
+    		if (headingMap.keySet().contains(sLevel)) {
+    			Map<String,String> attr = headingMap.get(sLevel);
+    			dlg.setComboBoxText("LaTeXLevel", attr.get("level"));
+    			dlg.setComboBoxText("LaTeXName", attr.get("name"));
+    		}
+    		else {
+    			dlg.setListBoxSelectedItem("LaTeXLevel", (short)2);
+    			dlg.setComboBoxText("LaTeXName", "");
+    		}
+    	}
+
+    	boolean bupdate = dlg.getListBoxSelectedItem("MaxLevel")>0;
+    	dlg.setControlEnabled("WriterLevelLabel", bupdate);
+    	dlg.setControlEnabled("WriterLevel", bupdate);
+    	dlg.setControlEnabled("LaTeXLevelLabel", bupdate);
+    	dlg.setControlEnabled("LaTeXLevel", bupdate);
+    	dlg.setControlEnabled("LaTeXNameLabel", bupdate);
+    	dlg.setControlEnabled("LaTeXName", bupdate);
+    	// Until implemented:
+    	dlg.setControlEnabled("UseTitlesec", false);
+    	//dlg.setControlEnabled("UseTitlesec", bupdate);
+
+    	// Until implemented:
+    	dlg.setControlEnabled("UseTitletoc", false);
+    	//boolean bNoIndex = dlg.getCheckBoxStateAsBoolean("NoIndex");
+    	//dlg.setControlEnabled("UseTitletoc", !bNoIndex);
+
     }
     
     // The page "Styles"
-    // This page handles the various style maps as well as the option other_styles
+    // This page handles the various style maps as well as the options other_styles and formatting
     
     private void loadStyles() {
-    	// TODO
-    	enableStylesControls();
-    }
-    
-    private void saveStyles() {
-    	// TODO
-    }
-    
-    private void enableStylesControls() {
-    	// TODO
-    }
-    
-    // The page "Formatting"
-    // This page handles the options formatting, use_color, use_colortbl, use_soul, use_ulem,
-    // use_hyperref, use_titlesec, use_titletoc
-    
-    private void loadFormatting() {
     	String sFormatting = config.getOption("formatting");
     	if ("ignore_all".equals(sFormatting)) {
     		dlg.setListBoxSelectedItem("Formatting", (short)0);
@@ -592,19 +716,28 @@ public final class ConfigurationDialog extends WeakBase
     	else {
     		dlg.setListBoxSelectedItem("Formatting", (short)2);
     	}
-    	
-    	dlg.setCheckBoxStateAsBoolean("UseHyperref","true".equals(config.getOption("use_hyperref")));
-    	dlg.setCheckBoxStateAsBoolean("UseColor","true".equals(config.getOption("use_color")));
-    	dlg.setCheckBoxStateAsBoolean("UseColortbl","true".equals(config.getOption("use_colortbl")));
-    	dlg.setCheckBoxStateAsBoolean("UseSoul","true".equals(config.getOption("use_soul")));
-    	dlg.setCheckBoxStateAsBoolean("UseUlem","true".equals(config.getOption("use_ulem")));
-    	dlg.setCheckBoxStateAsBoolean("UseTitlesec","true".equals(config.getOption("use_titlesec")));
-    	dlg.setCheckBoxStateAsBoolean("UseTitletoc","true".equals(config.getOption("use_titletoc")));
-    	
-    	enableFormattingControls();
+
+    	updateStylesControls();
     }
     
-    private void saveFormatting() {
+    private void saveStyles() {
+    	// Save the current style map, if any
+    	if (nCurrentFamily>-1 && sCurrentStyleName!=null) {
+    		Map<String,String> attr=new HashMap<String,String>();
+    		attr.put("before", dlg.getTextFieldText("Before"));
+    		attr.put("after", dlg.getTextFieldText("After"));
+    		if (dlg.getControlEnabled("Next")) {
+    			attr.put("next", dlg.getTextFieldText("Next"));
+    		}
+    		if (dlg.getControlEnabled("LineBreak")) {
+    			attr.put("line-break", Boolean.toString(dlg.getCheckBoxStateAsBoolean("LineBreak")));
+    		}
+    		if (dlg.getControlEnabled("Verbatim")) {
+    			attr.put("verbatim", Boolean.toString(dlg.getCheckBoxStateAsBoolean("Verbatim")));
+    		}
+    		styleMap[nCurrentFamily].put(sCurrentStyleName, attr);
+    	}
+    	
     	switch (dlg.getListBoxSelectedItem("Formatting")) {
     	case 0: config.setOption("formatting", "ignore_all"); break;
     	case 1: config.setOption("formatting", "ignore_most"); break;
@@ -612,33 +745,116 @@ public final class ConfigurationDialog extends WeakBase
     	case 3: config.setOption("formatting", "convert_most"); break;
     	case 4: config.setOption("formatting", "convert_all");
     	}
+
+    }
+    
+    private void updateStylesControls() {
+    	short nNewFamily = dlg.getListBoxSelectedItem("StyleFamily");
+    	if (nNewFamily>-1 && nNewFamily!=nCurrentFamily) {
+    		// The user has changed the family; load and display the corresponding style names
+    		Set<String> items = styleMap[nNewFamily].keySet();
+        	String[] sStyleNames = new String[items.size()];
+        	int i=0;
+        	for (String s : items) {
+        		sStyleNames[i++] = s;
+        	}
+        	sortStringArray(sStyleNames);
+        	dlg.setListBoxStringItemList("StyleName", sStyleNames);
+        	dlg.setListBoxSelectedItem("StyleName", (short)Math.min(sStyleNames.length-1, 0));
+        	dlg.setControlEnabled("NextLabel", nNewFamily==2);
+        	dlg.setControlEnabled("Next", nNewFamily==2);
+        	dlg.setControlEnabled("Verbatim", nNewFamily<2);
+        	dlg.setControlEnabled("LineBreak", nNewFamily==1);
+        	nCurrentFamily = nNewFamily;
+    	}
+    	
+    	if (nCurrentFamily>-1) {
+    		short nStyleNameItem = dlg.getListBoxSelectedItem("StyleName");
+    		if (nStyleNameItem>=0) {
+    			sCurrentStyleName = dlg.getListBoxStringItemList("StyleName")[nStyleNameItem];
+    			
+    			Map<String,String> attr = styleMap[nCurrentFamily].get(sCurrentStyleName);
+    			dlg.setTextFieldText("Before", attr.containsKey("before") ? attr.get("before") : "");
+    			dlg.setTextFieldText("After", attr.containsKey("after") ? attr.get("before") : "");
+    			dlg.setTextFieldText("Next", attr.containsKey("next") ? attr.get("next") : "");
+    			dlg.setTextFieldText("Verbatim", attr.containsKey("verbatim") ? attr.get("verbatim") : "");
+    			dlg.setTextFieldText("LineBreak", attr.containsKey("line-break") ? attr.get("line-break") : "");
+    			dlg.setControlEnabled("DeleteStyleButton", true);
+    			System.out.println("...OK loading style");
+    		}
+    		else {
+    			sCurrentStyleName = null;
+    			dlg.setTextFieldText("Before", "");
+    			dlg.setTextFieldText("After", "");
+    			dlg.setTextFieldText("Next", "");
+    			dlg.setCheckBoxStateAsBoolean("Verbatim", false);
+    			dlg.setCheckBoxStateAsBoolean("LineBreak", false);
+    			dlg.setControlEnabled("DeleteStyleButton", false);
+    		}
+    	}
+    }
+    
+    // The page "Characters"
+    // This page handles the options use_color, use_soul, use_ulem and use_hyperref
+    // In addition it handles style maps for formatting attributes
+    
+    private void loadCharacters() {
+    	dlg.setCheckBoxStateAsBoolean("UseHyperref","true".equals(config.getOption("use_hyperref")));
+    	dlg.setCheckBoxStateAsBoolean("UseColor","true".equals(config.getOption("use_color")));
+    	dlg.setCheckBoxStateAsBoolean("UseSoul","true".equals(config.getOption("use_soul")));
+    	dlg.setCheckBoxStateAsBoolean("UseUlem","true".equals(config.getOption("use_ulem")));
+    	
+    	updateCharactersControls();
+    }
+    
+    private void saveCharacters() {
+    	// Save the current attribute map, if any
+    	if (nCurrentAttribute>-1) {
+    		if (dlg.getCheckBoxStateAsBoolean("CustomAttribute")) {
+    			HashMap<String,String> attr = new HashMap<String,String>();
+    			attr.put("before", dlg.getTextFieldText("Before"));
+    			attr.put("after", dlg.getTextFieldText("After"));
+    			attributeMap.put(sAttributeNames[nCurrentAttribute], attr);
+    		}
+    		else {
+    			attributeMap.remove(sAttributeNames[nCurrentAttribute]);
+    		}
+    	}
     	
     	config.setOption("use_hyperref", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseHyperref")));    	
     	config.setOption("use_color", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseColor")));    	
-    	config.setOption("use_colortbl", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseColortbl")));    	
     	config.setOption("use_soul", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseSoul")));    	
-    	config.setOption("use_ulem", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseUlem")));    	
-    	config.setOption("use_titlesec", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseTitlesec")));    	
-    	config.setOption("use_titletoc", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseTitletoc")));    		
+    	config.setOption("use_ulem", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseUlem")));    
     }
     
-    private void enableFormattingControls() {
-    	short nFormatting = dlg.getListBoxSelectedItem("Formatting");
-    	boolean bUseColor = dlg.getCheckBoxStateAsBoolean("UseColor");
-    	//boolean bUseSoul = dlg.getCheckBoxStateAsBoolean("UseSoul");
-    	    	
-    	dlg.setControlEnabled("UseColor", nFormatting>0);
-    	dlg.setControlEnabled("UseColortbl", nFormatting>0 && bUseColor);
+    private void updateCharactersControls() {
+    	short nNewAttribute = dlg.getListBoxSelectedItem("FormattingAttribute");
+    	if (nNewAttribute>-1 && nCurrentAttribute!=nNewAttribute) {
+    		String sName = sAttributeNames[nNewAttribute];
+    		if (attributeMap.keySet().contains(sName)) {
+    			dlg.setCheckBoxStateAsBoolean("CustomAttribute", true);
+    			dlg.setTextFieldText("Before", 
+    				attributeMap.get(sName).containsKey("before") ? attributeMap.get(sName).get("before") : "");
+    			dlg.setTextFieldText("After",
+    				attributeMap.get(sName).containsKey("after") ? attributeMap.get(sName).get("after") : "");
+    		}
+    		else {
+    			dlg.setCheckBoxStateAsBoolean("CustomAttribute", false);
+    			dlg.setTextFieldText("Before", "");
+    			dlg.setTextFieldText("After", "");
+    		}
+    		nCurrentAttribute = nNewAttribute;
+    	}
+    	
+    	boolean bCustom = dlg.getCheckBoxStateAsBoolean("CustomAttribute");
+    	dlg.setControlEnabled("Before", bCustom);
+    	dlg.setControlEnabled("After", bCustom);
+    	
     	// Until implemented...
     	dlg.setControlEnabled("UseSoul", false);
-    	dlg.setControlEnabled("UseUlem", nFormatting>0);
-    	dlg.setControlEnabled("UseTitlesec", false);
-    	dlg.setControlEnabled("UseTitletoc", false);
     	// After which it should be...
-    	//dlg.setControlEnabled("UseSoul", nFormatting>0);
-    	//dlg.setControlEnabled("UseUlem", nFormatting>0 && !bUseSoul);
-    	//dlg.setControlEnabled("UseTitlesec", nFormatting>2);
-    	//dlg.setControlEnabled("UseTitletoc", nFormatting>2);
+    	//boolean bUseSoul = dlg.getCheckBoxStateAsBoolean("UseSoul");   	    	
+    	//dlg.setControlEnabled("UseUlem", !bUseSoul);
     }
     
     // The page "Fonts"
@@ -654,7 +870,7 @@ public final class ConfigurationDialog extends WeakBase
     	dlg.setCheckBoxStateAsBoolean("UseIfsym","true".equals(config.getOption("use_ifsym")));
     	dlg.setCheckBoxStateAsBoolean("UseBbding","true".equals(config.getOption("use_bbding")));
     	
-    	enableFontsControls();
+    	updateFontsControls();
     }
     
     private void saveFonts() {    	
@@ -667,7 +883,7 @@ public final class ConfigurationDialog extends WeakBase
     	config.setOption("use_bbding", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseBbding")));    	    	
     }
     
-    private void enableFontsControls() {
+    private void updateFontsControls() {
     	// Until implemented...
     	dlg.setControlEnabled("UseFontspec", false);
     	// Nothing to do
@@ -700,7 +916,7 @@ public final class ConfigurationDialog extends WeakBase
     	dlg.setCheckBoxStateAsBoolean("UseLastpage", "true".equals(config.getOption("use_lastpage")));
     	dlg.setCheckBoxStateAsBoolean("UseEndnotes", "true".equals(config.getOption("use_endnotes")));
     	
-    	enablePagesControls();
+    	updatePagesControls();
     }
     
     private void savePages() {
@@ -725,7 +941,7 @@ public final class ConfigurationDialog extends WeakBase
     	config.setOption("use_endnotes", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseEndnotes")));
     }
     
-    private void enablePagesControls() {
+    private void updatePagesControls() {
     	boolean bExportGeometry = dlg.getCheckBoxStateAsBoolean("ExportGeometry");
     	dlg.setControlEnabled("UseGeometry",bExportGeometry);
 
@@ -740,6 +956,7 @@ public final class ConfigurationDialog extends WeakBase
     
     private void loadTables() {
     	dlg.setCheckBoxStateAsBoolean("NoTables", !"accept".equals(config.getOption("table_content")));
+    	dlg.setCheckBoxStateAsBoolean("UseColortbl","true".equals(config.getOption("use_colortbl")));
     	dlg.setCheckBoxStateAsBoolean("UseTabulary", "true".equals(config.getOption("use_tabulary")));
     	//dlg.setCheckBoxStateAsBoolean("UseMultirow", "true".equals(config.getOption("use_multirow")));
     	dlg.setCheckBoxStateAsBoolean("UseSupertabular","true".equals(config.getOption("use_supertabular")));
@@ -749,11 +966,12 @@ public final class ConfigurationDialog extends WeakBase
     	dlg.setTextFieldText("TableFootStyle", config.getOption("table_foot_style"));
     	dlg.setTextFieldText("TableLastFootStyle", config.getOption("table_last_foot_style"));
     	dlg.setTextFieldText("TableSequenceName", config.getOption("table_sequence_name"));
-    	enableTablesControls();
+    	updateTablesControls();
     }
     
     private void saveTables() {
     	config.setOption("table_content", dlg.getCheckBoxStateAsBoolean("NoTables") ? "ignore" : "accept");
+    	config.setOption("use_colortbl", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseColortbl")));    	
     	config.setOption("use_tabulary", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseTabulary")));
     	//config.setOption("use_multirow", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseMultirow")));
     	config.setOption("use_supertabular", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseSupertabular")));
@@ -765,10 +983,11 @@ public final class ConfigurationDialog extends WeakBase
     	config.setOption("table_sequence_name", dlg.getTextFieldText("TableSequenceName"));
     }
     
-    private void enableTablesControls() {
+    private void updateTablesControls() {
     	boolean bNoTables = dlg.getCheckBoxStateAsBoolean("NoTables");
     	boolean bSupertabular = dlg.getCheckBoxStateAsBoolean("UseSupertabular");
     	boolean bLongtable = dlg.getCheckBoxStateAsBoolean("UseLongtable");
+    	dlg.setControlEnabled("UseColortbl", !bNoTables);
     	dlg.setControlEnabled("UseTabulary", !bNoTables);
     	dlg.setControlEnabled("UseMultirow", false);
     	dlg.setControlEnabled("UseSupertabular", !bNoTables);
@@ -798,7 +1017,7 @@ public final class ConfigurationDialog extends WeakBase
     	dlg.setCheckBoxStateAsBoolean("NoImages", !"accept".equals(config.getOption("image_content")));
     	dlg.setCheckBoxStateAsBoolean("RemoveGraphicsExtension", "true".equals(config.getOption("remove_graphics_extension")));
     	dlg.setTextFieldText("ImageOptions", config.getOption("image_options"));
-    	enableFiguresControls();
+    	updateFiguresControls();
      }
     
     private void saveFigures() {
@@ -810,7 +1029,7 @@ public final class ConfigurationDialog extends WeakBase
     	config.setOption("image_options", dlg.getTextFieldText("ImageOptions"));
     }
 
-    private void enableFiguresControls() {
+    private void updateFiguresControls() {
     	boolean bNoImages = dlg.getCheckBoxStateAsBoolean("NoImages");
     	dlg.setControlEnabled("RemoveGraphicsExtension", !bNoImages);
     	dlg.setControlEnabled("ImageOptionsLabel", !bNoImages);
@@ -833,8 +1052,8 @@ public final class ConfigurationDialog extends WeakBase
     	sortStringArray(sSymbolNames);
     	dlg.setListBoxStringItemList("MathSymbolName", sSymbolNames);
     	dlg.setListBoxSelectedItem("MathSymbolName", (short)0);
-    	sCurrentMathSymbol = sSymbolNames[0];
- 
+    	//sCurrentMathSymbol = symbolnames.size()>0 ? sSymbolNames[0] : null;
+    	
     	Set<String> names = config.getComplexOption("string-replace").keySet();
     	String[] sNames = new String[names.size()];
     	int j=0;
@@ -844,11 +1063,11 @@ public final class ConfigurationDialog extends WeakBase
     	sortStringArray(sNames);
     	dlg.setListBoxStringItemList("TextInput", sNames);
     	dlg.setListBoxSelectedItem("TextInput", (short)0);
-    	sCurrentText = sNames[0];
+    	//sCurrentText = sNames[0];
     	
     	dlg.setTextFieldText("TabStopLaTeX", config.getOption("tabstop"));
     	
-    	enableTextAndMathControls();
+    	updateTextAndMathControls();
     }
     
     private void saveTextAndMath() {
@@ -872,7 +1091,7 @@ public final class ConfigurationDialog extends WeakBase
     	config.setOption("tabstop", dlg.getTextFieldText("TabStopLaTeX"));
     }
     
-    private void enableTextAndMathControls() {
+    private void updateTextAndMathControls() {
     	// Get the current math symbol, if any
     	short nSymbolItem = dlg.getListBoxSelectedItem("MathSymbolName");
     	if (nSymbolItem>=0) {
diff --git a/source/java/writer2latex/api/ConverterFactory.java b/source/java/writer2latex/api/ConverterFactory.java
index 6c6b031..6f1a47a 100644
--- a/source/java/writer2latex/api/ConverterFactory.java
+++ b/source/java/writer2latex/api/ConverterFactory.java
@@ -20,7 +20,7 @@
  *
  *  All Rights Reserved.
  * 
- *  Version 1.2 (2009-09-28)
+ *  Version 1.2 (2009-11-02)
  *
  */
  
@@ -33,7 +33,7 @@ public class ConverterFactory {
 
     // Version information
     private static final String VERSION = "1.1.1";
-    private static final String DATE = "2009-09-28";
+    private static final String DATE = "2009-11-02";
 	
     /** Return version information
      *  @return the Writer2LaTeX version in the form
diff --git a/source/java/writer2latex/latex/LaTeXConfig.java b/source/java/writer2latex/latex/LaTeXConfig.java
index f2b0aa5..458bf4a 100644
--- a/source/java/writer2latex/latex/LaTeXConfig.java
+++ b/source/java/writer2latex/latex/LaTeXConfig.java
@@ -20,7 +20,7 @@
  *
  *  All Rights Reserved.
  * 
- *  Version 1.2 (2009-09-28)
+ *  Version 1.2 (2009-11-02)
  *
  */
 
@@ -48,7 +48,7 @@ public class LaTeXConfig extends writer2latex.base.ConfigBase {
 	/////////////////////////////////////////////////////////////////////////
 	// I. Define items needed by ConfigBase
 	
-    protected int getOptionCount() { return 63; }
+    protected int getOptionCount() { return 65; }
     protected String getDefaultConfigPath() { return "/writer2latex/latex/config/"; } 
     
 	/////////////////////////////////////////////////////////////////////////
@@ -129,50 +129,52 @@ public class LaTeXConfig extends writer2latex.base.ConfigBase {
     private static final int USE_COLORTBL = 16;
     private static final int USE_GEOMETRY = 17;
     private static final int USE_FANCYHDR = 18;
-    private static final int USE_HYPERREF = 19;
-    private static final int USE_CAPTION = 20;
-    private static final int USE_LONGTABLE = 21;
-    private static final int USE_SUPERTABULAR = 22;
-    private static final int USE_TABULARY = 23;
-    private static final int USE_ENDNOTES = 24;
-    private static final int USE_ULEM = 25;
-    private static final int USE_LASTPAGE = 26;
-    private static final int USE_TITLEREF = 27;
-    private static final int USE_OOOREF = 28;
-    private static final int USE_BIBTEX = 29;
-    private static final int BIBTEX_STYLE = 30;
-    private static final int EXTERNAL_BIBTEX_FILES = 31;
-    private static final int FORMATTING = 32;
-    private static final int PAGE_FORMATTING = 33;
-    private static final int OTHER_STYLES = 34;
-    private static final int IMAGE_CONTENT = 35;
-	private static final int TABLE_CONTENT = 36;
-	private static final int TABLE_FIRST_HEAD_STYLE = 37;
-	private static final int TABLE_HEAD_STYLE = 38;
-	private static final int TABLE_FOOT_STYLE = 39;
-	private static final int TABLE_LAST_FOOT_STYLE = 40;
-    private static final int IGNORE_HARD_PAGE_BREAKS = 41;
-    private static final int IGNORE_HARD_LINE_BREAKS = 42;
-    private static final int IGNORE_EMPTY_PARAGRAPHS = 43;
-    private static final int IGNORE_DOUBLE_SPACES = 44;
-    private static final int ALIGN_FRAMES = 45;
-    private static final int FLOAT_FIGURES = 46; 
-    private static final int FLOAT_TABLES = 47; 
-    private static final int FLOAT_OPTIONS = 48;
-    private static final int FIGURE_SEQUENCE_NAME = 49; 
-    private static final int TABLE_SEQUENCE_NAME = 50; 
-    private static final int IMAGE_OPTIONS = 51;
-    private static final int REMOVE_GRAPHICS_EXTENSION = 52;
-    private static final int ORIGINAL_IMAGE_SIZE = 53;
-    private static final int SIMPLE_TABLE_LIMIT = 54;
-    private static final int NOTES = 55;
-    private static final int METADATA = 56;
-    private static final int TABSTOP = 57;
-    private static final int WRAP_LINES_AFTER = 58;
-    private static final int SPLIT_LINKED_SECTIONS = 59;
-    private static final int SPLIT_TOPLEVEL_SECTIONS = 60;
-    private static final int SAVE_IMAGES_IN_SUBDIR = 61;
-    private static final int DEBUG = 62;
+    private static final int USE_TITLESEC = 19;
+    private static final int USE_TITLETOC = 20;
+    private static final int USE_HYPERREF = 21;
+    private static final int USE_CAPTION = 22;
+    private static final int USE_LONGTABLE = 23;
+    private static final int USE_SUPERTABULAR = 24;
+    private static final int USE_TABULARY = 25;
+    private static final int USE_ENDNOTES = 26;
+    private static final int USE_ULEM = 27;
+    private static final int USE_LASTPAGE = 28;
+    private static final int USE_TITLEREF = 29;
+    private static final int USE_OOOREF = 30;
+    private static final int USE_BIBTEX = 31;
+    private static final int BIBTEX_STYLE = 32;
+    private static final int EXTERNAL_BIBTEX_FILES = 33;
+    private static final int FORMATTING = 34;
+    private static final int PAGE_FORMATTING = 35;
+    private static final int OTHER_STYLES = 36;
+    private static final int IMAGE_CONTENT = 37;
+	private static final int TABLE_CONTENT = 38;
+	private static final int TABLE_FIRST_HEAD_STYLE = 39;
+	private static final int TABLE_HEAD_STYLE = 40;
+	private static final int TABLE_FOOT_STYLE = 41;
+	private static final int TABLE_LAST_FOOT_STYLE = 42;
+    private static final int IGNORE_HARD_PAGE_BREAKS = 43;
+    private static final int IGNORE_HARD_LINE_BREAKS = 44;
+    private static final int IGNORE_EMPTY_PARAGRAPHS = 45;
+    private static final int IGNORE_DOUBLE_SPACES = 46;
+    private static final int ALIGN_FRAMES = 47;
+    private static final int FLOAT_FIGURES = 48; 
+    private static final int FLOAT_TABLES = 49; 
+    private static final int FLOAT_OPTIONS = 50;
+    private static final int FIGURE_SEQUENCE_NAME = 51; 
+    private static final int TABLE_SEQUENCE_NAME = 52; 
+    private static final int IMAGE_OPTIONS = 53;
+    private static final int REMOVE_GRAPHICS_EXTENSION = 54;
+    private static final int ORIGINAL_IMAGE_SIZE = 55;
+    private static final int SIMPLE_TABLE_LIMIT = 56;
+    private static final int NOTES = 57;
+    private static final int METADATA = 58;
+    private static final int TABSTOP = 59;
+    private static final int WRAP_LINES_AFTER = 60;
+    private static final int SPLIT_LINKED_SECTIONS = 61;
+    private static final int SPLIT_TOPLEVEL_SECTIONS = 62;
+    private static final int SAVE_IMAGES_IN_SUBDIR = 63;
+    private static final int DEBUG = 64;
     
 	/////////////////////////////////////////////////////////////////////////
     // IV. Our options data
@@ -230,6 +232,8 @@ public class LaTeXConfig extends writer2latex.base.ConfigBase {
         options[USE_COLORTBL] = new BooleanOption("use_colortbl","false");
         options[USE_GEOMETRY] = new BooleanOption("use_geometry","false");
         options[USE_FANCYHDR] = new BooleanOption("use_fancyhdr","false");
+        options[USE_TITLESEC] = new BooleanOption("use_titlesec","false");
+        options[USE_TITLETOC] = new BooleanOption("use_titletoc","false");
         options[USE_HYPERREF] = new BooleanOption("use_hyperref","true");
         options[USE_CAPTION] = new BooleanOption("use_caption","false");
         options[USE_LONGTABLE] = new BooleanOption("use_longtable","false");
@@ -342,7 +346,7 @@ public class LaTeXConfig extends writer2latex.base.ConfigBase {
         parMap = addComplexOption("paragraph-map");
         parBlockMap = addComplexOption("paragraph-block-map");
         listMap = addComplexOption("list-map");
-        listItemMap = addComplexOption("list-item-map");
+        listItemMap = addComplexOption("listitem-map");
         textMap = addComplexOption("text-map");
         textAttrMap = addComplexOption("text-attribute-map");
         
@@ -637,6 +641,8 @@ public class LaTeXConfig extends writer2latex.base.ConfigBase {
     public boolean useColortbl() { return ((BooleanOption) options[USE_COLORTBL]).getValue(); }
     public boolean useGeometry() { return ((BooleanOption) options[USE_GEOMETRY]).getValue(); }
     public boolean useFancyhdr() { return ((BooleanOption) options[USE_FANCYHDR]).getValue(); }
+    public boolean useTitlesec() { return ((BooleanOption) options[USE_TITLESEC]).getValue(); }
+    public boolean useTitletoc() { return ((BooleanOption) options[USE_TITLETOC]).getValue(); }
     public boolean useHyperref() { return ((BooleanOption) options[USE_HYPERREF]).getValue(); }
     public boolean useCaption() { return ((BooleanOption) options[USE_CAPTION]).getValue(); }
     public boolean useLongtable() { return ((BooleanOption) options[USE_LONGTABLE]).getValue(); }
diff --git a/source/java/writer2latex/office/ImageLoader.java b/source/java/writer2latex/office/ImageLoader.java
index 22b189c..f4bac0d 100644
--- a/source/java/writer2latex/office/ImageLoader.java
+++ b/source/java/writer2latex/office/ImageLoader.java
@@ -27,7 +27,7 @@
 package writer2latex.office;
 
 //import java.io.ByteArrayInputStream;
-//import java.io.ByteArrayOutputStream;
+//import java.io.ByteArrayOutputStream; 
 //import java.io.IOException;
 import java.util.HashSet;
 
diff --git a/source/oxt/writer2latex/OptionPages.xcu b/source/oxt/writer2latex/OptionPages.xcu
index 6eb3381..b121792 100644
--- a/source/oxt/writer2latex/OptionPages.xcu
+++ b/source/oxt/writer2latex/OptionPages.xcu
@@ -103,10 +103,10 @@
           </prop>
         </node>
 
-        <node oor:name="org.openoffice.da.writer2latex.configuration.formatting" 
+        <node oor:name="org.openoffice.da.writer2latex.configuration.characters" 
           oor:op="fuse">
           <prop oor:name="Id">
-            <value>org.openoffice.da.writer2latex.configuration.formatting</value>
+            <value>org.openoffice.da.writer2latex.configuration.characters</value>
           </prop>
           <prop oor:name="GroupId">
             <value>org.openoffice.da.writer2latex.configuration</value>
@@ -115,10 +115,10 @@
             <value>3</value>
           </prop>
           <prop oor:name="Label">
-            <value xml:lang="en-US">Formatting</value>
+            <value xml:lang="en-US">Characters</value>
           </prop>
           <prop oor:name="OptionsPage">
-            <value>%origin%/W2LDialogs2/Formatting.xdl</value>
+            <value>%origin%/W2LDialogs2/Characters.xdl</value>
           </prop>
           <prop oor:name="EventHandlerService">
              <value>org.openoffice.da.writer2latex.ConfigurationDialog</value>
diff --git a/source/oxt/writer2latex/W2LDialogs2/Characters.xdl b/source/oxt/writer2latex/W2LDialogs2/Characters.xdl
new file mode 100644
index 0000000..65eb2c9
--- /dev/null
+++ b/source/oxt/writer2latex/W2LDialogs2/Characters.xdl
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="Characters" dlg:left="139" dlg:top="84" dlg:width="260" dlg:height="185" dlg:closeable="true" dlg:moveable="true" dlg:title="Characters" dlg:withtitlebar="false">
+ <dlg:bulletinboard>
+  <dlg:checkbox dlg:id="UseHyperref" dlg:tab-index="0" dlg:left="10" dlg:top="22" dlg:width="240" dlg:height="12" dlg:value="Use hyperref.sty (support for hyperlinks)" dlg:checked="false"/>
+  <dlg:checkbox dlg:id="UseColor" dlg:tab-index="1" dlg:left="10" dlg:top="36" dlg:width="240" dlg:height="12" dlg:value="Use color.sty (color support)" dlg:checked="false"/>
+  <dlg:checkbox dlg:id="UseSoul" dlg:tab-index="2" dlg:left="10" dlg:top="50" dlg:width="240" dlg:height="12" dlg:value="Use soul.sty (underline and strike out text)" dlg:checked="false">
+   <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:UseSoulChange" script:language="UNO"/>
+  </dlg:checkbox>
+  <dlg:checkbox dlg:id="UseUlem" dlg:tab-index="3" dlg:left="10" dlg:top="64" dlg:width="240" dlg:height="12" dlg:value="Use ulem.sty (underline and strike out text)" dlg:checked="false"/>
+  <dlg:text dlg:id="FormattingAttributeLabel" dlg:tab-index="4" dlg:left="10" dlg:top="92" dlg:width="100" dlg:height="12" dlg:value="Attribute"/>
+  <dlg:menulist dlg:id="FormattingAttribute" dlg:tab-index="5" dlg:left="120" dlg:top="90" dlg:width="130" dlg:height="12" dlg:spin="true">
+   <dlg:menupopup>
+    <dlg:menuitem dlg:value="Bold"/>
+    <dlg:menuitem dlg:value="Italics"/>
+    <dlg:menuitem dlg:value="Small caps"/>
+    <dlg:menuitem dlg:value="Superscript"/>
+    <dlg:menuitem dlg:value="Subscript"/>
+   </dlg:menupopup>
+   <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:FormattingAttributeChange" script:language="UNO"/>
+  </dlg:menulist>
+  <dlg:checkbox dlg:id="CustomAttribute" dlg:tab-index="6" dlg:left="15" dlg:top="106" dlg:width="235" dlg:height="12" dlg:value="Apply custom LaTeX code" dlg:checked="false">
+   <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:CustomAttributeChange" script:language="UNO"/>
+  </dlg:checkbox>
+  <dlg:text dlg:id="BeforeLabel" dlg:tab-index="7" dlg:left="15" dlg:top="120" dlg:width="95" dlg:height="12" dlg:value="LaTeX code before"/>
+  <dlg:textfield dlg:id="Before" dlg:tab-index="8" dlg:left="120" dlg:top="118" dlg:width="130" dlg:height="12"/>
+  <dlg:text dlg:id="AfterLabel" dlg:tab-index="9" dlg:left="15" dlg:top="134" dlg:width="95" dlg:height="12" dlg:value="LaTeX code after"/>
+  <dlg:textfield dlg:id="After" dlg:tab-index="10" dlg:left="120" dlg:top="132" dlg:width="130" dlg:height="12"/>
+  <dlg:text dlg:id="CharacterPackageLabel" dlg:tab-index="11" dlg:left="5" dlg:top="8" dlg:width="245" dlg:height="12" dlg:value="Character formatting packages"/>
+  <dlg:text dlg:id="AttributeHeadingLabel" dlg:tab-index="12" dlg:left="5" dlg:top="78" dlg:width="245" dlg:height="12" dlg:value="Formatting attributes"/>
+ </dlg:bulletinboard>
+</dlg:window>
\ No newline at end of file
diff --git a/source/oxt/writer2latex/W2LDialogs2/Figures.xdl b/source/oxt/writer2latex/W2LDialogs2/Figures.xdl
index b7c0abb..b97de87 100644
--- a/source/oxt/writer2latex/W2LDialogs2/Figures.xdl
+++ b/source/oxt/writer2latex/W2LDialogs2/Figures.xdl
@@ -3,24 +3,16 @@
 <dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="Figures" dlg:left="139" dlg:top="84" dlg:width="260" dlg:height="185" dlg:closeable="true" dlg:moveable="true" dlg:title="Figures" dlg:withtitlebar="false">
  <dlg:bulletinboard>
   <dlg:text dlg:id="GeneralLabel" dlg:tab-index="0" dlg:left="5" dlg:top="8" dlg:width="245" dlg:height="12" dlg:value="General"/>
-
   <dlg:checkbox dlg:id="UseCaption" dlg:tab-index="1" dlg:left="10" dlg:top="22" dlg:width="240" dlg:height="12" dlg:value="Use caption.sty to format captions (also for tables)" dlg:checked="false"/>
-
   <dlg:checkbox dlg:id="AlignFrames" dlg:tab-index="2" dlg:left="10" dlg:top="36" dlg:width="240" dlg:height="12" dlg:value="Center figures" dlg:checked="false"/>
-
   <dlg:text dlg:id="FigureSequenceLabel" dlg:tab-index="3" dlg:left="10" dlg:top="50" dlg:width="90" dlg:height="12" dlg:value="Figure sequence name"/>
   <dlg:textfield dlg:id="FigureSequenceName" dlg:tab-index="4" dlg:left="120" dlg:top="48" dlg:width="130" dlg:height="12"/>
-
   <dlg:text dlg:id="GraphicsLabel" dlg:tab-index="5" dlg:left="5" dlg:top="64" dlg:width="245" dlg:height="12" dlg:value="Graphics"/>
-
   <dlg:checkbox dlg:id="NoImages" dlg:tab-index="6" dlg:left="10" dlg:top="78" dlg:width="240" dlg:height="12" dlg:value="Do not export graphics" dlg:checked="false">
    <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:NoImagesChange" script:language="UNO"/>
   </dlg:checkbox>
-
   <dlg:checkbox dlg:id="RemoveGraphicsExtension" dlg:tab-index="7" dlg:left="10" dlg:top="92" dlg:width="240" dlg:height="12" dlg:value="Omit file extension" dlg:checked="false"/>
-
   <dlg:text dlg:id="ImageOptionsLabel" dlg:tab-index="8" dlg:left="10" dlg:top="106" dlg:width="90" dlg:height="12" dlg:value="Graphic options"/>
-
   <dlg:textfield dlg:id="ImageOptions" dlg:tab-index="9" dlg:left="120" dlg:top="104" dlg:width="130" dlg:height="12"/>
  </dlg:bulletinboard>
 </dlg:window>
\ No newline at end of file
diff --git a/source/oxt/writer2latex/W2LDialogs2/Formatting.xdl b/source/oxt/writer2latex/W2LDialogs2/Formatting.xdl
deleted file mode 100644
index ddc8766..0000000
--- a/source/oxt/writer2latex/W2LDialogs2/Formatting.xdl
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
-<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="Formatting" dlg:left="139" dlg:top="84" dlg:width="260" dlg:height="185" dlg:closeable="true" dlg:moveable="true" dlg:title="Formatting" dlg:withtitlebar="false">
- <dlg:bulletinboard>
-  <dlg:text dlg:id="FormattingLabel" dlg:tab-index="0" dlg:left="10" dlg:top="8" dlg:width="100" dlg:height="12" dlg:value="Formatting export"/>
-  <dlg:menulist dlg:id="Formatting" dlg:tab-index="1" dlg:left="120" dlg:top="6" dlg:width="130" dlg:height="12" dlg:spin="true">
-   <dlg:menupopup>
-    <dlg:menuitem dlg:value="Ignore all"/>
-    <dlg:menuitem dlg:value="Ignore most"/>
-    <dlg:menuitem dlg:value="Convert basic"/>
-    <dlg:menuitem dlg:value="Convert most"/>
-    <dlg:menuitem dlg:value="Convert all"/>
-   </dlg:menupopup>
-   <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:FormattingChange" script:language="UNO"/>
-  </dlg:menulist>
-  <dlg:checkbox dlg:id="UseHyperref" dlg:tab-index="2" dlg:left="10" dlg:top="22" dlg:width="240" dlg:height="12" dlg:value="Use hyperref.sty (support for hyperlinks)" dlg:checked="false"/>
-  <dlg:checkbox dlg:id="UseColor" dlg:tab-index="3" dlg:left="10" dlg:top="36" dlg:width="240" dlg:height="12" dlg:value="Use color.sty (color support)" dlg:checked="false">
-   <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:UseColorChange" script:language="UNO"/>
-  </dlg:checkbox>
-  <dlg:checkbox dlg:id="UseColortbl" dlg:tab-index="4" dlg:left="10" dlg:top="50" dlg:width="240" dlg:height="12" dlg:value="Use colortbl.sty (background color in tables)" dlg:checked="false"/>
-  <dlg:checkbox dlg:id="UseSoul" dlg:tab-index="5" dlg:left="10" dlg:top="64" dlg:width="240" dlg:height="12" dlg:value="Use soul.sty (underline and strike out text)" dlg:checked="false">
-   <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:UseSoulChange" script:language="UNO"/>
-  </dlg:checkbox>
-  <dlg:checkbox dlg:id="UseUlem" dlg:tab-index="6" dlg:left="10" dlg:top="78" dlg:width="240" dlg:height="12" dlg:value="Use ulem.sty (underline and strike out text)" dlg:checked="false"/>
-  <dlg:checkbox dlg:id="UseTitlesec" dlg:tab-index="7" dlg:left="10" dlg:top="92" dlg:width="240" dlg:height="12" dlg:value="Use titlesec.sty to format headings" dlg:checked="false"/>
-  <dlg:checkbox dlg:id="UseTitletoc" dlg:tab-index="8" dlg:left="10" dlg:top="106" dlg:width="240" dlg:height="12" dlg:value="Use titletoc.sty to format content tables" dlg:checked="false"/>
-  <dlg:text dlg:id="FormattingAttributeLabel" dlg:tab-index="9" dlg:left="10" dlg:top="120" dlg:width="100" dlg:height="12" dlg:value="Character formatting"/>
-  <dlg:menulist dlg:id="FormattingAttribute" dlg:tab-index="10" dlg:left="120" dlg:top="118" dlg:width="130" dlg:height="12" dlg:spin="true">
-   <dlg:menupopup>
-    <dlg:menuitem dlg:value="Bold"/>
-    <dlg:menuitem dlg:value="Italics"/>
-    <dlg:menuitem dlg:value="Small caps"/>
-    <dlg:menuitem dlg:value="Superscript"/>
-    <dlg:menuitem dlg:value="Subscript"/>
-   </dlg:menupopup>
-  </dlg:menulist>
-  <dlg:text dlg:id="BeforeLabel" dlg:tab-index="11" dlg:left="15" dlg:top="148" dlg:width="95" dlg:height="12" dlg:value="LaTeX code before"/>
-  <dlg:textfield dlg:id="Before" dlg:tab-index="12" dlg:left="120" dlg:top="146" dlg:width="130" dlg:height="12"/>
-  <dlg:text dlg:id="AfterLabel" dlg:tab-index="13" dlg:left="15" dlg:top="162" dlg:width="95" dlg:height="12" dlg:value="LaTeX code after"/>
-  <dlg:textfield dlg:id="After" dlg:tab-index="14" dlg:left="120" dlg:top="160" dlg:width="130" dlg:height="12"/>
-  <dlg:checkbox dlg:id="CustomAttribute" dlg:tab-index="15" dlg:left="15" dlg:top="134" dlg:width="235" dlg:height="12" dlg:value="Apply custom LaTeX code" dlg:checked="false"/>
- </dlg:bulletinboard>
-</dlg:window>
\ No newline at end of file
diff --git a/source/oxt/writer2latex/W2LDialogs2/Headings.xdl b/source/oxt/writer2latex/W2LDialogs2/Headings.xdl
index a28d578..db1b920 100644
--- a/source/oxt/writer2latex/W2LDialogs2/Headings.xdl
+++ b/source/oxt/writer2latex/W2LDialogs2/Headings.xdl
@@ -3,7 +3,6 @@
 <dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="Headings" dlg:left="139" dlg:top="84" dlg:width="260" dlg:height="185" dlg:closeable="true" dlg:moveable="true" dlg:title="Headings" dlg:withtitlebar="false">
  <dlg:bulletinboard>
   <dlg:text dlg:id="HeadingsLabel" dlg:tab-index="0" dlg:left="5" dlg:top="8" dlg:width="120" dlg:height="12" dlg:value="Headings"/>
-
   <dlg:text dlg:id="MaxLevelLabel" dlg:tab-index="1" dlg:left="10" dlg:top="22" dlg:width="120" dlg:height="12" dlg:value="Heading levels to export"/>
   <dlg:menulist dlg:id="MaxLevel" dlg:tab-index="2" dlg:left="140" dlg:top="20" dlg:width="40" dlg:height="12" dlg:spin="true" dlg:linecount="11">
    <dlg:menupopup>
@@ -21,7 +20,6 @@
    </dlg:menupopup>
    <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:MaxLevelChange" script:language="UNO"/>
   </dlg:menulist>
-
   <dlg:text dlg:id="WriterLevelLabel" dlg:tab-index="3" dlg:left="10" dlg:top="42" dlg:width="100" dlg:height="12" dlg:value="Writer level"/>
   <dlg:menulist dlg:id="WriterLevel" dlg:tab-index="4" dlg:left="140" dlg:top="40" dlg:width="40" dlg:height="12" dlg:spin="true" dlg:linecount="10">
    <dlg:menupopup>
@@ -36,10 +34,10 @@
     <dlg:menuitem dlg:value="9"/>
     <dlg:menuitem dlg:value="10"/>
    </dlg:menupopup>
+   <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:WriterLevelChange" script:language="UNO"/>
   </dlg:menulist>
-
   <dlg:text dlg:id="LaTeXLevelLabel" dlg:tab-index="5" dlg:left="10" dlg:top="56" dlg:width="100" dlg:height="12" dlg:value="LaTeX level"/>
-  <dlg:menulist dlg:id="LaTeXLevel" dlg:tab-index="6" dlg:left="140" dlg:top="54" dlg:width="40" dlg:height="12" dlg:spin="true" dlg:linecount="7">
+  <dlg:combobox dlg:id="LaTeXLevel" dlg:tab-index="6" dlg:left="140" dlg:top="54" dlg:width="40" dlg:height="12" dlg:spin="true" dlg:linecount="7">
    <dlg:menupopup>
     <dlg:menuitem dlg:value="-1"/>
     <dlg:menuitem dlg:value="0"/>
@@ -49,8 +47,7 @@
     <dlg:menuitem dlg:value="4"/>
     <dlg:menuitem dlg:value="5"/>
    </dlg:menupopup>
-  </dlg:menulist>
-  
+  </dlg:combobox>
   <dlg:text dlg:id="LaTeXNameLabel" dlg:tab-index="7" dlg:left="10" dlg:top="70" dlg:width="100" dlg:height="12" dlg:value="LaTeX heading name"/>
   <dlg:combobox dlg:id="LaTeXName" dlg:tab-index="8" dlg:left="140" dlg:top="68" dlg:width="100" dlg:height="12" dlg:spin="true" dlg:linecount="7">
    <dlg:menupopup>
@@ -63,9 +60,11 @@
     <dlg:menuitem dlg:value="subparagraph"/>
    </dlg:menupopup>
   </dlg:combobox>
-  
-  <dlg:text dlg:id="IndexesAndTablesLabel" dlg:tab-index="9" dlg:left="5" dlg:top="84" dlg:width="120" dlg:height="12" dlg:value="Indexes and tables"/>
-  <dlg:checkbox dlg:id="NoIndex" dlg:tab-index="10" dlg:left="10" dlg:top="98" dlg:width="240" dlg:height="12" dlg:value="Do not include indexes" dlg:checked="false"/>
-  
+  <dlg:text dlg:id="IndexesAndTablesLabel" dlg:tab-index="10" dlg:left="5" dlg:top="100" dlg:width="120" dlg:height="12" dlg:value="Indexes and tables"/>
+  <dlg:checkbox dlg:id="NoIndex" dlg:tab-index="11" dlg:left="10" dlg:top="114" dlg:width="240" dlg:height="12" dlg:value="Do not include indexes" dlg:checked="false">
+   <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:NoIndexChange" script:language="UNO"/>
+  </dlg:checkbox>
+  <dlg:checkbox dlg:id="UseTitlesec" dlg:tab-index="9" dlg:left="10" dlg:top="86" dlg:width="240" dlg:height="12" dlg:value="Use titlesec.sty to format headings" dlg:checked="false"/>
+  <dlg:checkbox dlg:id="UseTitletoc" dlg:tab-index="12" dlg:left="10" dlg:top="128" dlg:width="240" dlg:height="12" dlg:value="Use titlesec.sty to format indexes" dlg:checked="false"/>
  </dlg:bulletinboard>
 </dlg:window>
\ No newline at end of file
diff --git a/source/oxt/writer2latex/W2LDialogs2/Pages.xdl b/source/oxt/writer2latex/W2LDialogs2/Pages.xdl
index 1853b14..9a87bf1 100644
--- a/source/oxt/writer2latex/W2LDialogs2/Pages.xdl
+++ b/source/oxt/writer2latex/W2LDialogs2/Pages.xdl
@@ -7,16 +7,13 @@
    <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:ExportGeometryChange" script:language="UNO"/>
   </dlg:checkbox>
   <dlg:checkbox dlg:id="UseGeometry" dlg:tab-index="2" dlg:left="20" dlg:top="36" dlg:width="230" dlg:height="12" dlg:value="Use geometry.sty" dlg:checked="false"/>
-
   <dlg:text dlg:id="HeaderFooterLabel" dlg:tab-index="3" dlg:left="5" dlg:top="50" dlg:width="245" dlg:height="12" dlg:value="Header and footer"/>
   <dlg:checkbox dlg:id="ExportHeaderFooter" dlg:tab-index="4" dlg:left="10" dlg:top="64" dlg:width="240" dlg:height="12" dlg:value="Export header and footer" dlg:checked="false">
    <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:ExportHeaderAndFooterChange" script:language="UNO"/>
   </dlg:checkbox>
   <dlg:checkbox dlg:id="UseFancyhdr" dlg:tab-index="5" dlg:left="20" dlg:top="78" dlg:width="230" dlg:height="12" dlg:value="Use fancyhdr.sty" dlg:checked="false"/>
-
   <dlg:text dlg:id="PageNumberLabel" dlg:tab-index="6" dlg:left="5" dlg:top="92" dlg:width="245" dlg:height="12" dlg:value="Page numbers"/>
   <dlg:checkbox dlg:id="UseLastpage" dlg:tab-index="7" dlg:left="10" dlg:top="106" dlg:width="240" dlg:height="12" dlg:value="Use lastpage.sty" dlg:checked="false"/>
-
   <dlg:text dlg:id="EndnoteLabel" dlg:tab-index="8" dlg:left="5" dlg:top="120" dlg:width="245" dlg:height="12" dlg:value="Endnotes"/>
   <dlg:checkbox dlg:id="UseEndnotes" dlg:tab-index="9" dlg:left="10" dlg:top="134" dlg:width="240" dlg:height="12" dlg:value="Use endnotes.sty" dlg:checked="false"/>
  </dlg:bulletinboard>
diff --git a/source/oxt/writer2latex/W2LDialogs2/Styles.xdl b/source/oxt/writer2latex/W2LDialogs2/Styles.xdl
index a983710..9a94730 100644
--- a/source/oxt/writer2latex/W2LDialogs2/Styles.xdl
+++ b/source/oxt/writer2latex/W2LDialogs2/Styles.xdl
@@ -11,25 +11,42 @@
     <dlg:menuitem dlg:value="List"/>
     <dlg:menuitem dlg:value="List item"/>
    </dlg:menupopup>
+   <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:StyleFamilyChange" script:language="UNO"/>
+  </dlg:menulist>
+  <dlg:menulist dlg:id="StyleName" dlg:tab-index="2" dlg:left="80" dlg:top="26" dlg:width="80" dlg:height="12" dlg:spin="true">
+       <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:StyleNameChange" script:language="UNO"/>
   </dlg:menulist>
   <dlg:text dlg:id="StyleNameLabel" dlg:tab-index="3" dlg:left="10" dlg:top="28" dlg:width="60" dlg:height="12" dlg:value="Style name"/>
-  <dlg:button dlg:id="NewStyleButton" dlg:tab-index="4" dlg:left="165" dlg:top="26" dlg:width="40" dlg:height="12" dlg:value="New..."/>
-  <dlg:button dlg:id="DeleteStyleButton" dlg:tab-index="5" dlg:left="210" dlg:top="26" dlg:width="40" dlg:height="12" dlg:value="Delete..."/>
+  <dlg:button dlg:id="NewStyleButton" dlg:tab-index="4" dlg:left="165" dlg:top="26" dlg:width="40" dlg:height="12" dlg:value="New...">
+     <script:event script:event-name="on-mouseup" script:macro-name="vnd.sun.star.UNO:NewStyleClick" script:language="UNO"/>
+  </dlg:button>
+  <dlg:button dlg:id="DeleteStyleButton" dlg:tab-index="5" dlg:left="210" dlg:top="26" dlg:width="40" dlg:height="12" dlg:value="Delete...">
+     <script:event script:event-name="on-mouseup" script:macro-name="vnd.sun.star.UNO:DeleteStyleClick" script:language="UNO"/>
+  </dlg:button>
   <dlg:text dlg:id="BeforeLabel" dlg:tab-index="6" dlg:left="15" dlg:top="42" dlg:width="60" dlg:height="12" dlg:value="LaTeX code before"/>
   <dlg:textfield dlg:id="Before" dlg:tab-index="7" dlg:left="80" dlg:top="40" dlg:width="170" dlg:height="12"/>
   <dlg:text dlg:id="AfterLabel" dlg:tab-index="8" dlg:left="15" dlg:top="56" dlg:width="60" dlg:height="12" dlg:value="LaTeX code after"/>
   <dlg:textfield dlg:id="After" dlg:tab-index="9" dlg:left="80" dlg:top="54" dlg:width="170" dlg:height="12"/>
-  <dlg:text dlg:id="NextStylesLabel" dlg:tab-index="10" dlg:left="15" dlg:top="70" dlg:width="60" dlg:height="12" dlg:value="Next style(s)"/>
+  <dlg:text dlg:id="NextLabel" dlg:tab-index="10" dlg:left="15" dlg:top="70" dlg:width="60" dlg:height="12" dlg:value="Next style(s)"/>
   <dlg:textfield dlg:id="Next" dlg:tab-index="11" dlg:left="80" dlg:top="68" dlg:width="170" dlg:height="12"/>
   <dlg:checkbox dlg:id="LineBreak" dlg:tab-index="13" dlg:left="15" dlg:top="98" dlg:width="235" dlg:height="12" dlg:value="Line break inside" dlg:checked="false"/>
-  <dlg:text dlg:id="OtherStylesLabel" dlg:tab-index="14" dlg:left="10" dlg:top="118" dlg:width="60" dlg:height="12" dlg:value="Other styles"/>
-  <dlg:menulist dlg:id="OtherStyles" dlg:tab-index="15" dlg:left="80" dlg:top="116" dlg:width="170" dlg:height="12" dlg:spin="true">
+  <dlg:text dlg:id="OtherStylesLabel" dlg:tab-index="14" dlg:left="10" dlg:top="118" dlg:width="100" dlg:height="12" dlg:value="Other styles"/>
+  <dlg:menulist dlg:id="OtherStyles" dlg:tab-index="15" dlg:left="120" dlg:top="116" dlg:width="130" dlg:height="12" dlg:spin="true">
    <dlg:menupopup>
     <dlg:menuitem dlg:value="Ignore"/>
     <dlg:menuitem dlg:value="Convert"/>
    </dlg:menupopup>
   </dlg:menulist>
   <dlg:checkbox dlg:id="Verbatim" dlg:tab-index="12" dlg:left="15" dlg:top="84" dlg:width="235" dlg:height="12" dlg:value="Verbatim content" dlg:checked="false"/>
-  <dlg:menulist dlg:id="StyleName" dlg:tab-index="2" dlg:left="80" dlg:top="26" dlg:width="80" dlg:height="12" dlg:spin="true"/>
+  <dlg:menulist dlg:id="Formatting" dlg:tab-index="17" dlg:left="120" dlg:top="136" dlg:width="130" dlg:height="12" dlg:spin="true">
+   <dlg:menupopup>
+    <dlg:menuitem dlg:value="Ignore all"/>
+    <dlg:menuitem dlg:value="Ignore most"/>
+    <dlg:menuitem dlg:value="Convert basic"/>
+    <dlg:menuitem dlg:value="Convert most"/>
+    <dlg:menuitem dlg:value="Convert all"/>
+   </dlg:menupopup>
+  </dlg:menulist>
+  <dlg:text dlg:id="FormattingLabel" dlg:tab-index="16" dlg:left="10" dlg:top="138" dlg:width="100" dlg:height="12" dlg:value="Other formatting"/>
  </dlg:bulletinboard>
 </dlg:window>
\ No newline at end of file
diff --git a/source/oxt/writer2latex/W2LDialogs2/Tables.xdl b/source/oxt/writer2latex/W2LDialogs2/Tables.xdl
index f41c548..26c4fb5 100644
--- a/source/oxt/writer2latex/W2LDialogs2/Tables.xdl
+++ b/source/oxt/writer2latex/W2LDialogs2/Tables.xdl
@@ -3,25 +3,26 @@
 <dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="Tables" dlg:left="139" dlg:top="84" dlg:width="260" dlg:height="185" dlg:closeable="true" dlg:moveable="true" dlg:title="Tables" dlg:withtitlebar="false">
  <dlg:bulletinboard>
   <dlg:checkbox dlg:id="NoTables" dlg:tab-index="0" dlg:left="10" dlg:top="8" dlg:width="240" dlg:height="12" dlg:value="Do not export tables" dlg:checked="false">
-     <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:NoTablesChange" script:language="UNO"/>
+   <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:NoTablesChange" script:language="UNO"/>
   </dlg:checkbox>
-  <dlg:checkbox dlg:id="UseTabulary" dlg:tab-index="1" dlg:left="10" dlg:top="22" dlg:width="240" dlg:height="12" dlg:value="Use tabulary.sty (automatic column width)" dlg:checked="false"/>
-  <dlg:checkbox dlg:id="UseMultirow" dlg:tab-index="2" dlg:left="10" dlg:top="36" dlg:width="240" dlg:height="12" dlg:value="Use multirow.sty (support for rowspan)" dlg:checked="false"/>
-  <dlg:checkbox dlg:id="UseSupertabular" dlg:tab-index="3" dlg:left="10" dlg:top="50" dlg:width="240" dlg:height="12" dlg:value="Use supertabular.sty (multipage tables)" dlg:checked="false">
-     <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:UseSupertabularChange" script:language="UNO"/>
+  <dlg:checkbox dlg:id="UseTabulary" dlg:tab-index="2" dlg:left="10" dlg:top="36" dlg:width="240" dlg:height="12" dlg:value="Use tabulary.sty (automatic column width)" dlg:checked="false"/>
+  <dlg:checkbox dlg:id="UseMultirow" dlg:tab-index="3" dlg:left="10" dlg:top="50" dlg:width="240" dlg:height="12" dlg:value="Use multirow.sty (support for rowspan)" dlg:checked="false"/>
+  <dlg:checkbox dlg:id="UseSupertabular" dlg:tab-index="4" dlg:left="10" dlg:top="64" dlg:width="240" dlg:height="12" dlg:value="Use supertabular.sty (multipage tables)" dlg:checked="false">
+   <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:UseSupertabularChange" script:language="UNO"/>
   </dlg:checkbox>
-  <dlg:checkbox dlg:id="UseLongtable" dlg:tab-index="4" dlg:left="10" dlg:top="64" dlg:width="240" dlg:height="12" dlg:value="Use longtable.sty (multipage tables)" dlg:checked="false">
-     <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:UseLongtableChange" script:language="UNO"/>
+  <dlg:checkbox dlg:id="UseLongtable" dlg:tab-index="5" dlg:left="10" dlg:top="78" dlg:width="240" dlg:height="12" dlg:value="Use longtable.sty (multipage tables)" dlg:checked="false">
+   <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:UseLongtableChange" script:language="UNO"/>
   </dlg:checkbox>
-  <dlg:text dlg:id="TableFirstHeadLabel" dlg:tab-index="5" dlg:left="25" dlg:top="78" dlg:width="90" dlg:height="12" dlg:value="Style for first head"/>
-  <dlg:text dlg:id="TableHeadLabel" dlg:tab-index="6" dlg:left="25" dlg:top="92" dlg:width="90" dlg:height="12" dlg:value="Style for head"/>
-  <dlg:text dlg:id="TableFootLabel" dlg:tab-index="7" dlg:left="25" dlg:top="106" dlg:width="90" dlg:height="12" dlg:value="Style for foot"/>
-  <dlg:text dlg:id="TableLastFootLabel" dlg:tab-index="8" dlg:left="25" dlg:top="120" dlg:width="90" dlg:height="12" dlg:value="Style for last foot"/>
-  <dlg:textfield dlg:id="TableFirstHeadStyle" dlg:tab-index="9" dlg:left="120" dlg:top="76" dlg:width="130" dlg:height="12"/>
-  <dlg:textfield dlg:id="TableHeadStyle" dlg:tab-index="10" dlg:left="120" dlg:top="90" dlg:width="130" dlg:height="12"/>
-  <dlg:textfield dlg:id="TableFootStyle" dlg:tab-index="11" dlg:left="120" dlg:top="104" dlg:width="130" dlg:height="12"/>
-  <dlg:textfield dlg:id="TableLastFootStyle" dlg:tab-index="12" dlg:left="120" dlg:top="118" dlg:width="130" dlg:height="12"/>
-  <dlg:text dlg:id="TableSequenceLabel" dlg:tab-index="13" dlg:left="10" dlg:top="134" dlg:width="90" dlg:height="12" dlg:value="Table sequence name"/>
-  <dlg:textfield dlg:id="TableSequenceName" dlg:tab-index="14" dlg:left="120" dlg:top="134" dlg:width="130" dlg:height="12"/>
+  <dlg:text dlg:id="TableFirstHeadLabel" dlg:tab-index="6" dlg:left="25" dlg:top="92" dlg:width="90" dlg:height="12" dlg:value="Style for first head"/>
+  <dlg:text dlg:id="TableHeadLabel" dlg:tab-index="7" dlg:left="25" dlg:top="106" dlg:width="90" dlg:height="12" dlg:value="Style for head"/>
+  <dlg:text dlg:id="TableFootLabel" dlg:tab-index="8" dlg:left="25" dlg:top="120" dlg:width="90" dlg:height="12" dlg:value="Style for foot"/>
+  <dlg:text dlg:id="TableLastFootLabel" dlg:tab-index="9" dlg:left="25" dlg:top="134" dlg:width="90" dlg:height="12" dlg:value="Style for last foot"/>
+  <dlg:textfield dlg:id="TableFirstHeadStyle" dlg:tab-index="10" dlg:left="120" dlg:top="90" dlg:width="130" dlg:height="12"/>
+  <dlg:textfield dlg:id="TableHeadStyle" dlg:tab-index="11" dlg:left="120" dlg:top="104" dlg:width="130" dlg:height="12"/>
+  <dlg:textfield dlg:id="TableFootStyle" dlg:tab-index="12" dlg:left="120" dlg:top="118" dlg:width="130" dlg:height="12"/>
+  <dlg:textfield dlg:id="TableLastFootStyle" dlg:tab-index="13" dlg:left="120" dlg:top="132" dlg:width="130" dlg:height="12"/>
+  <dlg:text dlg:id="TableSequenceLabel" dlg:tab-index="14" dlg:left="10" dlg:top="150" dlg:width="90" dlg:height="12" dlg:value="Table sequence name"/>
+  <dlg:textfield dlg:id="TableSequenceName" dlg:tab-index="15" dlg:left="120" dlg:top="148" dlg:width="130" dlg:height="12"/>
+  <dlg:checkbox dlg:id="UseColortbl" dlg:tab-index="1" dlg:left="10" dlg:top="22" dlg:width="240" dlg:height="12" dlg:value="Use colortbl.sty (background color in cells)" dlg:checked="false"/>
  </dlg:bulletinboard>
 </dlg:window>
\ No newline at end of file
diff --git a/source/oxt/writer2latex/W2LDialogs2/TextAndMath.xdl b/source/oxt/writer2latex/W2LDialogs2/TextAndMath.xdl
index 3e4408e..5035da7 100644
--- a/source/oxt/writer2latex/W2LDialogs2/TextAndMath.xdl
+++ b/source/oxt/writer2latex/W2LDialogs2/TextAndMath.xdl
@@ -3,9 +3,7 @@
 <dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="TextAndMath" dlg:left="139" dlg:top="84" dlg:width="260" dlg:height="185" dlg:closeable="true" dlg:moveable="true" dlg:title="TextAndMath" dlg:withtitlebar="false">
  <dlg:bulletinboard>
   <dlg:text dlg:id="MathPackageLabel" dlg:tab-index="0" dlg:left="5" dlg:top="8" dlg:width="245" dlg:height="12" dlg:value="Math packages"/>
-
   <dlg:checkbox dlg:id="UseOoomath" dlg:tab-index="1" dlg:left="10" dlg:top="22" dlg:width="240" dlg:height="12" dlg:value="Use ooomath.sty (custom package supporting OpenOffice.org equations)" dlg:checked="false"/>
-
   <dlg:text dlg:id="MathSymbolsLabel" dlg:tab-index="2" dlg:left="5" dlg:top="36" dlg:width="245" dlg:height="12" dlg:value="Math symbols"/>
   <dlg:text dlg:id="MathSymbolNameLabel" dlg:tab-index="3" dlg:left="10" dlg:top="50" dlg:width="50" dlg:height="12" dlg:value="Name"/>
   <dlg:menulist dlg:id="MathSymbolName" dlg:tab-index="4" dlg:left="70" dlg:top="48" dlg:width="90" dlg:height="12" dlg:spin="true" dlg:linecount="10">
@@ -19,21 +17,19 @@
   </dlg:button>
   <dlg:text dlg:id="MathLaTeXLabel" dlg:tab-index="7" dlg:left="10" dlg:top="64" dlg:width="50" dlg:height="12" dlg:value="LaTeX code"/>
   <dlg:textfield dlg:id="MathLaTeX" dlg:tab-index="8" dlg:left="70" dlg:top="62" dlg:width="180" dlg:height="12"/>
-
   <dlg:text dlg:id="TextReplaceLabel" dlg:tab-index="9" dlg:left="5" dlg:top="78" dlg:width="245" dlg:height="12" dlg:value="Text replace"/>
   <dlg:text dlg:id="InputLabel" dlg:tab-index="10" dlg:left="10" dlg:top="92" dlg:width="50" dlg:height="12" dlg:value="Input"/>
   <dlg:menulist dlg:id="TextInput" dlg:tab-index="11" dlg:left="70" dlg:top="90" dlg:width="90" dlg:height="12" dlg:spin="true" dlg:linecount="10">
    <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:TextInputChange" script:language="UNO"/>
   </dlg:menulist>
   <dlg:button dlg:id="NewTextButton" dlg:tab-index="12" dlg:left="165" dlg:top="90" dlg:width="40" dlg:height="12" dlg:value="New...">
-     <script:event script:event-name="on-mouseup" script:macro-name="vnd.sun.star.UNO:NewTextClick" script:language="UNO"/>
+   <script:event script:event-name="on-mouseup" script:macro-name="vnd.sun.star.UNO:NewTextClick" script:language="UNO"/>
   </dlg:button>
   <dlg:button dlg:id="DeleteTextButton" dlg:tab-index="13" dlg:left="210" dlg:top="90" dlg:width="40" dlg:height="12" dlg:value="Delete...">
-     <script:event script:event-name="on-mouseup" script:macro-name="vnd.sun.star.UNO:DeleteTextClick" script:language="UNO"/>
+   <script:event script:event-name="on-mouseup" script:macro-name="vnd.sun.star.UNO:DeleteTextClick" script:language="UNO"/>
   </dlg:button>
   <dlg:text dlg:id="LaTeXLabel" dlg:tab-index="14" dlg:left="10" dlg:top="106" dlg:width="50" dlg:height="12" dlg:value="LaTeX code"/>
   <dlg:textfield dlg:id="LaTeX" dlg:tab-index="15" dlg:left="70" dlg:top="104" dlg:width="180" dlg:height="12"/>
-
   <dlg:text dlg:id="TabStopLabel" dlg:tab-index="16" dlg:left="5" dlg:top="120" dlg:width="245" dlg:height="12" dlg:value="Tab stops"/>
   <dlg:text dlg:id="TabStopLaTeXLabel" dlg:tab-index="17" dlg:left="10" dlg:top="134" dlg:width="50" dlg:height="12" dlg:value="LaTeX code"/>
   <dlg:textfield dlg:id="TabStopLaTeX" dlg:tab-index="18" dlg:left="70" dlg:top="132" dlg:width="180" dlg:height="12"/>
diff --git a/source/oxt/writer2latex/W2LDialogs2/dialog.xlb b/source/oxt/writer2latex/W2LDialogs2/dialog.xlb
index 8938c4c..ff99ab9 100644
--- a/source/oxt/writer2latex/W2LDialogs2/dialog.xlb
+++ b/source/oxt/writer2latex/W2LDialogs2/dialog.xlb
@@ -5,12 +5,12 @@
  <library:element library:name="Documentclass"/>
  <library:element library:name="Headings"/>
  <library:element library:name="Styles"/>
- <library:element library:name="Formatting"/>
+ <library:element library:name="DeleteDialog"/>
  <library:element library:name="Fonts"/>
  <library:element library:name="Pages"/>
  <library:element library:name="Tables"/>
  <library:element library:name="Figures"/>
  <library:element library:name="TextAndMath"/>
  <library:element library:name="NewDialog"/>
- <library:element library:name="DeleteDialog"/>
+ <library:element library:name="Characters"/>
 </library:library>
\ No newline at end of file