diff --git a/uk/ac/sanger/artemis/util/DatabaseDocument.java b/uk/ac/sanger/artemis/util/DatabaseDocument.java
index ae348ec564268f3835107c47c3868b6c84a49334..940ae4b4ba8bf986eb9b7049e22fe193827971ea 100644
--- a/uk/ac/sanger/artemis/util/DatabaseDocument.java
+++ b/uk/ac/sanger/artemis/util/DatabaseDocument.java
@@ -127,6 +127,7 @@ public class DatabaseDocument extends Document
   // include children in reading from the database
   private boolean readChildren = true;
   
+  // range to retrieve features for
   private Range range;
   
   private Feature geneFeature;
@@ -480,14 +481,21 @@ public class DatabaseDocument extends Document
         // Retrieve all features within a range
        // List schemaList = new Vector();
        // schemaList.add(schema);
-        
-        Collection featureLocs = geneFeature.getFeatureLocsForFeatureId();
-        Iterator it = featureLocs.iterator();
-        final FeatureLoc featureLoc = (FeatureLoc)it.next();
+        final Feature srcFeature;
+        if(geneFeature != null)
+        {
+          Collection featureLocs = geneFeature.getFeatureLocsForFeatureId();
+          Iterator it = featureLocs.iterator();
+          final FeatureLoc featureLoc = (FeatureLoc)it.next();
 
-        final Feature srcFeature = featureLoc.getFeatureBySrcFeatureId();
-        setName(srcFeature.getUniqueName());
-        this.srcFeatureId = Integer.toString(srcFeature.getFeatureId());
+          srcFeature = featureLoc.getFeatureBySrcFeatureId();
+          setName(srcFeature.getUniqueName());
+          this.srcFeatureId = Integer.toString(srcFeature.getFeatureId());
+        }
+        else
+        {
+          srcFeature = dao.getFeatureById(Integer.parseInt(srcFeatureId));
+        }
         
         ByteBuffer entryBuffer = getFeaturesInRange(srcFeature, range, dao);
         getChadoSequence(srcFeature, entryBuffer);
@@ -2966,4 +2974,9 @@ public class DatabaseDocument extends Document
       getCvterms(dao);
     }
   }
+
+  public void setRange(Range range)
+  {
+    this.range = range;
+  }
 }