diff --git a/uk/ac/sanger/artemis/chado/ChadoCvTermView.java b/uk/ac/sanger/artemis/chado/ChadoCvTermView.java
index 33d1ac7aacd4cc0dcc3c22150c4508fca21dd9bd..1705170933837b0a3feb26e35991ff38d54e913c 100644
--- a/uk/ac/sanger/artemis/chado/ChadoCvTermView.java
+++ b/uk/ac/sanger/artemis/chado/ChadoCvTermView.java
@@ -347,18 +347,23 @@ public class ChadoCvTermView extends JFrame
     bacross.add(pfield);
 
     
-    DatabaseLocationParser dlp = new DatabaseLocationParser();
+    DatabaseLocationParser dlp; 
     // given -Dchado=localhost:port/dbname?username
     if(System.getProperty("chado") != null)
     {
       String db_url = System.getProperty("chado").trim();
-      dlp.setFromURLString(db_url);
+      dlp = new DatabaseLocationParser(db_url);
       inServer.setText(dlp.getHost());
       inPort.setText("" + dlp.getPort());
       inDB.setText(dlp.getDatabase());
       inUser.setText(dlp.getUsername());
    
     }
+    else
+    {
+        // Still need to initialise the object
+        dlp = new DatabaseLocationParser();
+    }
 
     int n = JOptionPane.showConfirmDialog(null, bacross,
         "Enter Database Address", JOptionPane.OK_CANCEL_OPTION,
diff --git a/uk/ac/sanger/artemis/chado/DbSqlConfig.java b/uk/ac/sanger/artemis/chado/DbSqlConfig.java
index f5cafc519e2a96ee896066bae84c4ee4214b4fc4..b4c92b0705aa2f1e158685e2d94367236e1bf93a 100644
--- a/uk/ac/sanger/artemis/chado/DbSqlConfig.java
+++ b/uk/ac/sanger/artemis/chado/DbSqlConfig.java
@@ -64,25 +64,11 @@ public class DbSqlConfig
      if(System.getProperty("chado") != null)
      {
        String url = System.getProperty("chado");
-       DatabaseLocationParser dlp = new DatabaseLocationParser();
-       dlp.setFromURLString(url);
-//       int index  = url.indexOf("?");
-//       int index2 = url.indexOf("user=");
+       DatabaseLocationParser dlp = new DatabaseLocationParser(url);
        properties = new Properties();
 
-//       int index3 = url.indexOf("://");
-//       if(index3 < 0)
-//         index3 = 0;
-//       else
-//         index3 = index3+3;
-
-//       properties.put("chado", url.substring(index3,index)); 
        properties.put("chado",dlp.getUnprefixedURL());
 
-//       if(index2 < 0)
-//         properties.put("username", url.substring(index+1));
-//       else
-//         properties.put("username", url.substring(index2+5));
        properties.put("username",dlp.getUsername());
        
        if(fpasswd != null && fpasswd.getPassword().length > 0)
diff --git a/uk/ac/sanger/artemis/chado/JdbcDAO.java b/uk/ac/sanger/artemis/chado/JdbcDAO.java
index 1f7d77ba65d4979ffffd7b5d587c9c6f892963be..8f72e27e0f3b1656a5c0f5d5de6552b687721530 100644
--- a/uk/ac/sanger/artemis/chado/JdbcDAO.java
+++ b/uk/ac/sanger/artemis/chado/JdbcDAO.java
@@ -83,8 +83,7 @@ public class JdbcDAO extends GmodDAO
       conn = DriverManager.getConnection(location);
 
     // assume we have a password
-    DatabaseLocationParser dlp = new DatabaseLocationParser();
-    dlp.setFromURLString(location);
+    DatabaseLocationParser dlp = new DatabaseLocationParser(location);
     conn = DriverManager.getConnection(dlp.getConnectionString(),
                                        dlp.getUsername(),
                                        new String(pfield.getPassword()));
diff --git a/uk/ac/sanger/artemis/components/ProjectProperty.java b/uk/ac/sanger/artemis/components/ProjectProperty.java
index 23d0eb83de1ea3f2a3b3eeaac3ed33e66089265a..9b40765e471fb14d6bdb25bccf005d2e5dbcea2c 100644
--- a/uk/ac/sanger/artemis/components/ProjectProperty.java
+++ b/uk/ac/sanger/artemis/components/ProjectProperty.java
@@ -727,8 +727,7 @@ public class ProjectProperty extends JFrame
   private void openDatabase(final Splash splash, final String featureName)
   {
     String loc = System.getProperty("chado");
-    DatabaseLocationParser dlp = new DatabaseLocationParser();
-    dlp.setFromURLString(loc);
+    DatabaseLocationParser dlp = new DatabaseLocationParser(loc);
     
     
 //    int idx;
diff --git a/uk/ac/sanger/artemis/components/database/DatabaseEntrySource.java b/uk/ac/sanger/artemis/components/database/DatabaseEntrySource.java
index 2a41fcedf3c6ae7507d2fba8dcf0a3f61f5f79a4..f8bbf93e5deb270f189f427d97e131867b77651b 100644
--- a/uk/ac/sanger/artemis/components/database/DatabaseEntrySource.java
+++ b/uk/ac/sanger/artemis/components/database/DatabaseEntrySource.java
@@ -448,13 +448,12 @@ class DatabaseLoginPrompt extends JPanel implements ILoginPrompt
   
   private void setFromURL(String db_url)
   {
-      DatabaseLocationParser dlp = new DatabaseLocationParser();
-      dlp.setFromURLString(db_url);
+      DatabaseLocationParser dlp = new DatabaseLocationParser(db_url);
       server.setText(dlp.getHost());
       port.setText("" + dlp.getPort());
       db.setText(dlp.getDatabase());
       user.setText(dlp.getUsername());
-      ssl.setSelected(dlp.getSSL());
+      ssl.setSelected(dlp.isSSLEnabled());
   }
   
   /**
@@ -570,8 +569,7 @@ class DatabaseLoginPromptConsole implements ILoginPrompt
 	
 	private void setFromURL(String db_url)
 	  {
-              DatabaseLocationParser dlp = new DatabaseLocationParser();
-              dlp.setFromURLString(db_url);
+              DatabaseLocationParser dlp = new DatabaseLocationParser(db_url);
               server = dlp.getHost();
               port = "" + dlp.getPort();
               db = dlp.getDatabase();
diff --git a/uk/ac/sanger/artemis/util/DatabaseDocument.java b/uk/ac/sanger/artemis/util/DatabaseDocument.java
index 2e65ae30d7c4119a6800df4011d27f1dd5ca23b4..a8f5abe276c25a7abfc3b95e953ec65cd7067e14 100644
--- a/uk/ac/sanger/artemis/util/DatabaseDocument.java
+++ b/uk/ac/sanger/artemis/util/DatabaseDocument.java
@@ -174,7 +174,7 @@ public class DatabaseDocument extends Document
    * 
    * @param location
    *          This should be a URL string giving:
-   *          jdbc:postgresql://host:port/datbase_name?user=username
+   *          jdbc:postgresql://host:port/database_name?user=username
    * 
    */
   public DatabaseDocument(String location, JPasswordField pfield)
@@ -230,7 +230,7 @@ public class DatabaseDocument extends Document
    * 
    * @param location
    *          This should be a URL string giving:
-   *          jdbc:postgresql://host:port/datbase_name?user=username
+   *          jdbc:postgresql://host:port/database_name?user=username
    * @param srcFeatureId
    *          ID of a feature to be extracted.
    * @param splitGFFEntry
@@ -2647,8 +2647,7 @@ public class DatabaseDocument extends Document
     // "localhost:10001/backup?chado"
     
     String url = (String)getLocation();
-    DatabaseLocationParser dlp = new DatabaseLocationParser();
-    dlp.setFromURLString(url);
+    DatabaseLocationParser dlp = new DatabaseLocationParser(url);
     
 //    
 //    int index  = url.indexOf("?");