Last minute fix
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
index f894c7d..a9ce06f 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
@@ -1234,10 +1234,11 @@
 			}
 		} else {
 			IDocumentExtension3 ex3 = (IDocumentExtension3) document;
-			if (ex3.getDocumentPartitioner(partitioning) != null) {
+			if (ex3.getDocumentPartitioner(partitioning) == null) {
 				IDocumentPartitioner partitioner= getDocumentPartitioner();
 				if (partitioner != null) {
 					ex3.setDocumentPartitioner(partitioning, partitioner);
+					partitioner.connect(document);
 				}
 			}
 		}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DocumentStructureCreator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DocumentStructureCreator.java
index 88f808a..a3287cc 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DocumentStructureCreator.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DocumentStructureCreator.java
@@ -124,10 +124,11 @@
 			}
 		} else {
 			IDocumentExtension3 ex3 = (IDocumentExtension3) document;
-			if (ex3.getDocumentPartitioner(partitioning) != null) {
+			if (ex3.getDocumentPartitioner(partitioning) == null) {
 				IDocumentPartitioner partitioner= getDocumentPartitioner();
 				if (partitioner != null) {
 					ex3.setDocumentPartitioner(partitioning, partitioner);
+					partitioner.connect(document);
 				}
 			}
 		}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
index f894c7d..a9ce06f 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
@@ -1234,10 +1234,11 @@
 			}
 		} else {
 			IDocumentExtension3 ex3 = (IDocumentExtension3) document;
-			if (ex3.getDocumentPartitioner(partitioning) != null) {
+			if (ex3.getDocumentPartitioner(partitioning) == null) {
 				IDocumentPartitioner partitioner= getDocumentPartitioner();
 				if (partitioner != null) {
 					ex3.setDocumentPartitioner(partitioning, partitioner);
+					partitioner.connect(document);
 				}
 			}
 		}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DocumentStructureCreator.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DocumentStructureCreator.java
index 88f808a..a3287cc 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DocumentStructureCreator.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DocumentStructureCreator.java
@@ -124,10 +124,11 @@
 			}
 		} else {
 			IDocumentExtension3 ex3 = (IDocumentExtension3) document;
-			if (ex3.getDocumentPartitioner(partitioning) != null) {
+			if (ex3.getDocumentPartitioner(partitioning) == null) {
 				IDocumentPartitioner partitioner= getDocumentPartitioner();
 				if (partitioner != null) {
 					ex3.setDocumentPartitioner(partitioning, partitioner);
+					partitioner.connect(document);
 				}
 			}
 		}