diff --git a/modules/Bio/EnsEMBL/DBSQL/DBEntryAdaptor.pm b/modules/Bio/EnsEMBL/DBSQL/DBEntryAdaptor.pm
index f6fc6a180af9820f2e2e9024cfcfd74be0967db4..c6bd0e25211a1583637e1c12ac7c7d146f157572 100644
--- a/modules/Bio/EnsEMBL/DBSQL/DBEntryAdaptor.pm
+++ b/modules/Bio/EnsEMBL/DBSQL/DBEntryAdaptor.pm
@@ -1542,24 +1542,27 @@ sub fetch_all_by_source {
 
 
 sub fetch_all_synonyms {
+  my ( $self, $dbID ) = @_;
 
-  my ($self, $dbID) = @_;
+  my @synonyms = ();
 
-  my @synonyms;
+  my $sth =
+    $self->prepare( "SELECT synonym "
+      . "FROM external_synonym "
+      . "WHERE xref_id = ?" );
 
-  my $sth = $self->prepare("SELECT synonym FROM external_synonym WHERE xref_id = ?");
+  $sth->bind_param( 1, $dbID, SQL_INTEGER );
 
-  $sth->bind_param(1, $dbID, SQL_INTEGER);
   $sth->execute();
-  while ( my $arrayref = $sth->fetchrow_arrayref()){
-    my ($synonym) = @$arrayref;
-    push (@synonyms, $synonym);
-  }
 
-  @synonyms = () if (!@synonyms);
+  my $synonym;
+  $sth->bind_col(1, \$synonym);
 
-  return \@synonyms;
+  while ( $sth->fetch() ) {
+    push( @synonyms, $synonym );
+  }
 
+  return \@synonyms;
 }