diff --git a/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java b/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java
index 8e00d327128cbc1ff1bdb3bc4b3b0cbfd74ac425..ea163b8b30a45b5507e6124f0a0d7968595328ce 100644
--- a/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java
+++ b/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java
@@ -1228,8 +1228,10 @@ public class ChadoTransactionManager
   {
     if(synonym_tags == null)
     {
-      synonym_tags = DatabaseDocument.getSynonymTypeNames(
+      if(GeneUtils.isDatabaseEntry(feature))
+        synonym_tags = DatabaseDocument.getSynonymTypeNames(
                               SYNONYM_TAG_CVNAME, feature);
+
       if(synonym_tags == null || synonym_tags.length < 1)
       {
         logger4j.debug("Using default synonym names");
@@ -1250,6 +1252,12 @@ public class ChadoTransactionManager
     return false;
   }
   
+  public static String[] getSynonymTags()
+  {
+    return synonym_tags;
+  }
+
+  
   /**
    * Compare the old and new keys and qualifiers and find the qualifiers 
    * that have changed or been added and UPDATE, INSERT or DELETE accordingly.
diff --git a/uk/ac/sanger/artemis/components/FeatureEdit.java b/uk/ac/sanger/artemis/components/FeatureEdit.java
index 6b459dd7387a478e29adcea0e34ebcebf4fb40ff..1626ba3b8dde6429f4350ce7bb8caf75c3d61bfb 100644
--- a/uk/ac/sanger/artemis/components/FeatureEdit.java
+++ b/uk/ac/sanger/artemis/components/FeatureEdit.java
@@ -76,7 +76,6 @@ import java.util.Comparator;
 
 import javax.swing.*;
 
-
 /**
  *  FeatureEdit class
  *
@@ -860,7 +859,6 @@ public class FeatureEdit extends JPanel
         }
       });
 
-
       final JCheckBox oneView = new JCheckBox("Overview", false);
       oneView.addItemListener(new ItemListener()
       {
@@ -887,6 +885,12 @@ public class FeatureEdit extends JPanel
       fillerBox.add(Box.createHorizontalStrut( 
           tabbedView.getPreferredSize().width ));
     }
+    else if(getFeature().getEmblFeature() instanceof GFFStreamFeature)
+    {
+      propertiesPanel = new PropertiesPanel(getFeature());
+      addGffAnnotationView(lower_panel);
+
+    }
     else
       lower_panel.add(new JScrollPane(qualifier_text_area), "Center");
     
@@ -1438,8 +1442,8 @@ public class FeatureEdit extends JPanel
     
     qualifier_text_area.setText(getQualifierString());
     
-    if(GeneUtils.isDatabaseEntry(getFeature().getEmblFeature()))
-    {  
+    if(getFeature().getEmblFeature() instanceof GFFStreamFeature)
+    {
       // load synonym
       if(cvForm != null)
         cvForm.updateFromFeature(getFeature());
@@ -1541,9 +1545,7 @@ public class FeatureEdit extends JPanel
     {
       qualifiers =
         qualifier_text_area.getParsedQualifiers(getEntryInformation ());
-      
-      updateGffIds(qualifiers);
-      
+           
       // if using controlled vocab form
       if(cvForm != null)
       {
@@ -1569,6 +1571,7 @@ public class FeatureEdit extends JPanel
         if(mapQualifiers != null && mapQualifiers.size() > 0)
           qualifiers.addAll(mapQualifiers);
       }
+      updateGffIds(qualifiers);
       
       if(matchForm != null)
       {
@@ -1679,7 +1682,7 @@ public class FeatureEdit extends JPanel
         {
           final String newName = ((String) (qualifiers.getQualifierByName("ID").getValues().get(0))).trim();
           final String oldName = ((String) (gffFeature.getQualifierByName("ID").getValues().get(0))).trim();
-         
+ 
           if(!newName.equals(oldName))
           {
             int val = JOptionPane.showConfirmDialog(null, 
@@ -1704,7 +1707,7 @@ public class FeatureEdit extends JPanel
             }
           }
         }
-        catch(Exception e){ }
+        catch(Exception e){ e.printStackTrace(); }
       }
     }
   }
diff --git a/uk/ac/sanger/artemis/components/genebuilder/GeneEditorPanel.java b/uk/ac/sanger/artemis/components/genebuilder/GeneEditorPanel.java
index 5cf4c1d64d0455f5417677ea1d1518c5e6ccb42a..2851efa8f18712ce755160ef4ed94f8806442a42 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/GeneEditorPanel.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/GeneEditorPanel.java
@@ -40,7 +40,6 @@ import uk.ac.sanger.artemis.components.genebuilder.cv.CVPanel;
 import uk.ac.sanger.artemis.components.genebuilder.gff.PropertiesPanel;
 import uk.ac.sanger.artemis.components.genebuilder.ortholog.MatchPanel;
 
-
 /**
  * Panel for display controlled vocabulary terms for Chado
  */
@@ -92,22 +91,32 @@ public class GeneEditorPanel extends JPanel
     coreButton = addOpenClosePanel("Core",qualifier_text_area, this, null);
     add(qualifier_text_area);
     
-    addDarkSeparator(this);
-    refButton = addOpenClosePanel("References",refPanel, this, null);
-    add(refPanel);
-    
-    addDarkSeparator(this);
-    cvButton = addOpenClosePanel("Controlled Vocabulary", cvForm, this,
+    if(refPanel != null)
+    {
+      addDarkSeparator(this);
+      refButton = addOpenClosePanel("References",refPanel, this, null);
+      add(refPanel);
+    }
+
+    if(cvForm != null)
+    {
+      addDarkSeparator(this);
+      cvButton = addOpenClosePanel("Controlled Vocabulary", cvForm, this,
         CVPanel.getDescription());
-    add(cvForm);
-    
-    addDarkSeparator(this);
-    matchButton = addOpenClosePanel("Match", matchForm, this,
+      add(cvForm);
+    }
+
+    if(matchForm != null)
+    {
+      addDarkSeparator(this);
+      matchButton = addOpenClosePanel("Match", matchForm, this,
         MatchPanel.getDescription());
-    add(matchForm);
-    
+      add(matchForm);
+    }
+
     add(Box.createVerticalGlue());
   }
+  
 
   /**
    * Open/close the sections if they contain elements or
@@ -116,9 +125,12 @@ public class GeneEditorPanel extends JPanel
   public void updatePanelState()
   {
     coreButton.setOpen(!qualifier_text_area.getText().equals(""));
-    cvButton.setOpen(!cvForm.isEmpty());
-    refButton.setOpen(!refPanel.isEmpty());
-    matchButton.setOpen(!matchForm.isEmpty());
+    if(cvForm != null)
+      cvButton.setOpen(!cvForm.isEmpty());
+    if(refPanel != null)
+      refButton.setOpen(!refPanel.isEmpty());
+    if(matchForm != null)
+      matchButton.setOpen(!matchForm.isEmpty());
     propertiesButton.setOpen(!propertiesPanel.isEmpty());
   }
   
diff --git a/uk/ac/sanger/artemis/components/genebuilder/gff/PropertiesPanel.java b/uk/ac/sanger/artemis/components/genebuilder/gff/PropertiesPanel.java
index a02fe756316efafb50093f3b6a467cc59b0eae3d..03a72b4a5378bdaa538e7bf8b15b68cd1e9c08bb 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/gff/PropertiesPanel.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/gff/PropertiesPanel.java
@@ -34,7 +34,6 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.util.Iterator;
 import java.util.Set;
-import java.util.Vector;
 
 import javax.swing.BorderFactory;
 import javax.swing.Box;
@@ -184,7 +183,9 @@ public class PropertiesPanel extends JPanel
   {
     Qualifier idQualifier   = gffQualifiers.getQualifierByName("ID");
     Qualifier nameQualifier = gffQualifiers.getQualifierByName("Name");
-   
+
+    if(idQualifier == null)
+      return;
     final String uniquename = idQualifier.getValues().get(0);
     uniquenameTextField = new JTextField(uniquename);
     uniquenameTextField.setPreferredSize(calcPreferredMaxTextFieldWidth());
@@ -780,9 +781,13 @@ public class PropertiesPanel extends JPanel
   
   private void addSynonym()
   {
-    final Vector<CvTerm> synonyms = DatabaseDocument.getCvterms("", 
-        ChadoTransactionManager.SYNONYM_TAG_CVNAME, false);
-    final JExtendedComboBox list = new JExtendedComboBox(synonyms);
+    final JExtendedComboBox list;
+    if(GeneUtils.isDatabaseEntry(feature.getEmblFeature()))
+      list = new JExtendedComboBox(DatabaseDocument.getCvterms("", 
+          ChadoTransactionManager.SYNONYM_TAG_CVNAME, false));
+    else
+      list = new JExtendedComboBox(ChadoTransactionManager.getSynonymTags());
+
     final String options[] = { "CANCEL", "NEXT>"};   
     
     int select = JOptionPane.showOptionDialog(null, list,
@@ -790,12 +795,15 @@ public class PropertiesPanel extends JPanel
          JOptionPane.YES_NO_CANCEL_OPTION,
          JOptionPane.QUESTION_MESSAGE,
          null, options, options[1]);
-    
     if(select == 0)
       return;
-    
+
     Box xBox = Box.createHorizontalBox();
-    final String synonymName = ((CvTerm)list.getSelectedItem()).getName();
+    final String synonymName;
+    if(list.getSelectedItem() instanceof CvTerm)
+      synonymName = ((CvTerm)list.getSelectedItem()).getName();
+    else
+      synonymName = (String) list.getSelectedItem();
     final JLabel name = new JLabel( synonymName );
     xBox.add(name);