diff --git a/lib/copoint/imperativeCCNP.ml b/lib/copoint/imperativeCCNP.ml
index 0a7ce9a053b36b3245154b14bb6dad452aeaab6b..9759777f5deeb4305932414c299cb8f1ef4b7854 100644
--- a/lib/copoint/imperativeCCNP.ml
+++ b/lib/copoint/imperativeCCNP.ml
@@ -160,6 +160,8 @@ let find_compatible_order (type elt) diss =
   let module D = struct type t = elt let d = diss.d end in 
   let module M = Make(D) in 
   try 
-    Some (M.find_compatible_order (Array.of_list diss.elements))
+    let order = M.find_compatible_order (Array.of_list diss.elements) in 
+    if Dissimilarity.is_compatible_order diss (Array.to_list order) then Some order
+    else None 
   with 
     | M.Not_Robinson -> None 
diff --git a/lib/copoint/robinsonCCNP.ml b/lib/copoint/robinsonCCNP.ml
index e879adff42441710089da7c9f325ce895a10f328..a4b220251dc286fd4313e9b74210c9ea35285ffe 100644
--- a/lib/copoint/robinsonCCNP.ml
+++ b/lib/copoint/robinsonCCNP.ml
@@ -175,6 +175,8 @@ let find_compatible_order (type elt) diss =
   in 
   let module M = Make(D) in 
   try
-    Some (M.find_compatible_order diss.elements)
+    let order = M.find_compatible_order diss.elements in 
+    if Dissimilarity.is_compatible_order diss order then Some order
+    else None 
   with 
   | M.Not_Robinson -> None