diff --git a/test/uk/ac/sanger/artemis/io/GFF3AttributeBuilderTest.java b/test/uk/ac/sanger/artemis/io/GFF3AttributeBuilderTest.java
index 80b27334f2e0bda4eb4bcab1cc8eee5693301ecc..e65c526b62b2ffe244eae2f73c48429e7da1187f 100644
--- a/test/uk/ac/sanger/artemis/io/GFF3AttributeBuilderTest.java
+++ b/test/uk/ac/sanger/artemis/io/GFF3AttributeBuilderTest.java
@@ -290,6 +290,6 @@ public class GFF3AttributeBuilderTest {
     ab.setAggregator("attr1", testProc);
     ab.add("attr1", in);
     ab.add("attr2", in);
-    assertEquals(ab.toString(), "attr2=foo,bar foo,bar");
+    assertEquals(ab.toString(), "attr2=>>foo<<|>>bar<< foo,bar");
   }
 }
diff --git a/uk/ac/sanger/artemis/io/GFF3AttributeBuilder.java b/uk/ac/sanger/artemis/io/GFF3AttributeBuilder.java
index 2a7b252942e715bca4b60aafcf4cbff19031c7a0..a46cf4378d86d781bce8db92f1081b17b39cda3b 100644
--- a/uk/ac/sanger/artemis/io/GFF3AttributeBuilder.java
+++ b/uk/ac/sanger/artemis/io/GFF3AttributeBuilder.java
@@ -116,6 +116,7 @@ public class GFF3AttributeBuilder {
   }
 
   public void add(String attr, StringVector val) {
+    String origAttr = attr;
     ArrayList<String> targetAttrs = new ArrayList<String>();
     // expand attributes
     if (clones.containsKey(attr))
@@ -136,7 +137,10 @@ public class GFF3AttributeBuilder {
     for (String this_attr : targetAttrs) {
       String aggregatedVal;
       // do we have an aggregator for this type?
-      if (aggs.containsKey(this_attr)) {
+      if (aggs.containsKey(origAttr)) {
+        GFF3AttributeAggregator agg = aggs.get(origAttr);
+        aggregatedVal = agg.process(val);
+      } else if (aggs.containsKey(this_attr)) {
         GFF3AttributeAggregator agg = aggs.get(this_attr);
         aggregatedVal = agg.process(val);
       } else {
diff --git a/uk/ac/sanger/artemis/io/GFFStreamFeature.java b/uk/ac/sanger/artemis/io/GFFStreamFeature.java
index 522d050e688345931f9994efcea71490ade5e3ce..6279f57efc5f57bb9f8d0b375e2734dae003303b 100644
--- a/uk/ac/sanger/artemis/io/GFFStreamFeature.java
+++ b/uk/ac/sanger/artemis/io/GFFStreamFeature.java
@@ -915,7 +915,7 @@ public class GFFStreamFeature extends SimpleDocumentFeature implements
 
     // EC numbers go into Dbxref
     abuf.setMapping("EC_number", "Dbxref");
-    abuf.setAggregator("Dbxref", ecProc);
+    abuf.setAggregator("EC_number", ecProc);
     abuf.setGlue("Dbxref", ",");
 
     // start/end ranges