diff --git a/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java b/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java
index 7527973412844075aa2e5ac3bf1b94ed012a12f1..8c8888e8a44c5efc46dbb7bb8eeed3466d9c9224 100644
--- a/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java
+++ b/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java
@@ -65,6 +65,8 @@ import java.util.Vector;
 import java.util.Hashtable;
 import java.util.List;
 import java.util.Enumeration;
+import java.util.regex.Pattern;
+
 import javax.swing.JOptionPane;
 
 import org.gmod.schema.sequence.FeatureCvTermProp;
@@ -2012,9 +2014,16 @@ public class ChadoTransactionManager
       if(children != null && children.size()>0)
       {
         final String prefix;
-
-        if(uniqueName[0].indexOf(".") > -1)
-          prefix = uniqueName[0].split("\\.")[0];
+        int index;
+        if((index = uniqueName[0].lastIndexOf(".") )> -1)
+        {
+          boolean numbered = Pattern.matches("\\S+\\.\\d+$", uniqueName[0]);
+          //prefix = uniqueName[0].split("\\.")[0];         
+          if(numbered)
+            prefix = uniqueName[0].substring(0, index);
+          else
+            prefix = uniqueName[0];
+        }
         else
           prefix = uniqueName[0].split(":")[0];
         int val = JOptionPane.showConfirmDialog(null, 
diff --git a/uk/ac/sanger/artemis/components/genebuilder/GeneUtils.java b/uk/ac/sanger/artemis/components/genebuilder/GeneUtils.java
index c46c196a48b975329b78702b0d49c1ed6e1fe7ee..c771f0b9cac0e79649392034441095d32a7d7e27 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/GeneUtils.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/GeneUtils.java
@@ -1236,7 +1236,7 @@ public class GeneUtils
       final String oldId = getUniqueName(child);
       
       final Set childrenOfChild = gene.getChildren(child);
-      int index = oldId.indexOf('.');
+      int index = oldId.lastIndexOf('.');
       
       if(index == -1)
         index = oldId.indexOf(':');
@@ -1255,7 +1255,7 @@ public class GeneUtils
           while(itKeys.hasNext())
           {
             String oldKey = (String)itKeys.next();
-            index = oldKey.indexOf('.');
+            index = oldKey.lastIndexOf('.');
             if(index == -1)
               index = oldKey.indexOf(':');
             final String newKey = newName + oldKey.substring(index);