diff --git a/src/main/java/de/ids_mannheim/korap/query/SpanDistanceQuery.java b/src/main/java/de/ids_mannheim/korap/query/SpanDistanceQuery.java
index 448a85f..ba07dac 100644
--- a/src/main/java/de/ids_mannheim/korap/query/SpanDistanceQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/query/SpanDistanceQuery.java
@@ -184,7 +184,7 @@
         if (this.elementQuery != null) {
             if (isExclusion()) {
                 return new ElementDistanceExclusionSpans(this, context,
-                        acceptDocs, termContexts, isOrdered);
+                        acceptDocs, termContexts);
             } else if (isOrdered) {
                 return new ElementDistanceSpans(this, context, acceptDocs,
                         termContexts);
@@ -194,7 +194,7 @@
 
         } else if (isExclusion()) {
             return new DistanceExclusionSpans(this, context, acceptDocs,
-                    termContexts, isOrdered);
+                    termContexts);
         } else if (isOrdered) {
             return new TokenDistanceSpans(this, context, acceptDocs,
                     termContexts);
@@ -279,4 +279,24 @@
         this.exclusion = exclusion;
     }
 
+    /**
+     * Tells whether the spans must occur in order or not.
+     * 
+     * @return <code>true</code> if the spans must occur in order,
+     *         <code>false</code> otherwise.
+     */
+    public boolean isOrdered() {
+        return isOrdered;
+    }
+
+    /**
+     * Sets whether the spans must occur in order or not.
+     * 
+     * @param isOrdered <code>true</code> if the spans must occur in order,
+     *        <code>false</code> otherwise.
+     */
+    public void setOrder(boolean isOrdered) {
+        this.isOrdered = isOrdered;
+    }
+
 }
