diff --git a/includes/provider.php b/includes/provider.php
index 8398c288..18452cf3 100755
--- a/includes/provider.php
+++ b/includes/provider.php
@@ -3,21 +3,31 @@
 require_once 'includes/config.php';
 
 /*
- * Manage VPN provider configuration
+ * Display VPN provider configuration
  */
 function DisplayProviderConfig()
 {
+    // initialize status object
     $status = new \RaspAP\Messages\StatusMessage;
 
+    // set defaults
     $id = $_SESSION["providerID"];
-    $providerName = getProviderValue($id, "name");
     $binPath = getProviderValue($id, "bin_path");
+    $providerName = getProviderValue($id, "name");
+    $providerVersion = getProviderVersion($id, $binPath);
+    $installPage = getProviderValue($id, "install_page");
     $publicIP = get_public_ip();
+    $serviceStatus = 'down';
+    $statusDisplay = 'down';
 
     if (!file_exists($binPath)) {
-        $installPage = getProviderValue($id, "install_page");
-        $status->addMessage('Expected '.$providerName.' binary not found at: '.$binPath, 'warning');
-        $status->addMessage('Visit the installation instructions for '.$providerName.'\'s Linux CLI.', 'warning');
+        $status->addMessage(sprintf(_('Expected %s binary not found at: %s'), $providerName, $binPath), 'warning');
+        $status->addMessage(sprintf(_('Visit the installation instructions for %s\'s Linux CLI.'), $installPage, $providerName), 'warning');
+        $ctlState = 'disabled';
+        $providerVersion = 'not found';
+    } elseif (empty($providerVersion)) {
+        $status->addMessage(sprintf(_('Unable to execute %s binary found at: %s'), $providerName, $binPath), 'warning');
+        $status->addMessage(_('Check that binary is executable and permissions exist in raspap.sudoers'), 'warning');
         $ctlState = 'disabled';
         $providerVersion = 'not found';
     } else {
@@ -28,11 +38,9 @@ function DisplayProviderConfig()
         // fetch provider log
         $providerLog = getProviderLog($id, $binPath, $country);
 
-        // fetch provider version
-        $providerVersion = getProviderVersion($id, $binPath);
-
         // fetch account info
         $accountInfo = getAccountInfo($id, $binPath, $providerName);
+        $accountLink = getProviderValue($id, "account_page");
 
         // fetch available countries
         $countries = getCountries($id, $binPath);
@@ -75,6 +83,7 @@ function DisplayProviderConfig()
             "providerName",
             "providerVersion",
             "accountInfo",
+            "accountLink",
             "countries",
             "country",
             "providerLog",
@@ -94,7 +103,7 @@ function DisplayProviderConfig()
  */
 function saveProviderConfig($status, $binPath, $country, $id = null)
 {
-    $status->addMessage('Attempting to connect to '.$country, 'info');
+    $status->addMessage(sprintf(_('Attempting to connect to %s',$country)), 'info');
     $cmd = getCliOverride($id, 'cmd_overrides', 'connect');
     if ($id == 2) { // mullvad requires location set
         exec("sudo $binPath set location $country", $return);
@@ -122,7 +131,7 @@ function saveProviderConfig($status, $binPath, $country, $id = null)
  */
 function stripArtifacts($output, $pattern = null)
 {
-    $result = preg_replace('/[-\/\n\t\\\\'.$pattern.'|\[0m\[1;33;49m]/', '', $output);
+    $result = preg_replace('/[-\/\n\t\\\\'.$pattern.'|]/', '', $output);
     return $result;
 }
 
@@ -162,10 +171,14 @@ function getProviderStatus($id, $binPath)
     $pattern = getCliOverride($id, 'regex', 'status');
     exec("sudo $binPath $cmd", $cmd_raw);
     $cmd_raw = strtolower(stripArtifacts($cmd_raw[0]));
-    if (preg_match($pattern, $cmd_raw, $match)) {
-        $status =  "down";
+    if (!empty($cmd_raw[0])) {
+        if (preg_match($pattern, $cmd_raw, $match)) {
+            $status =  "down";
+        } else {
+            $status = "up";
+        }
     } else {
-        $status = "up";
+        $status = "down";
     }
     return $status;
 }
@@ -230,7 +243,7 @@ function getCountries($id, $binPath)
     default:
         break;
     }
-    $select = array(' ' => 'Select a country...');
+    $select = array(' ' => _("Select a country..."));
     $countries = $select + $countries;
     return $countries;
 }
@@ -268,6 +281,7 @@ function getProviderVersion($id, $binPath)
 {
     $cmd = getCliOverride($id, 'cmd_overrides', 'version');
     $version = shell_exec("sudo $binPath $cmd");
+    $version = preg_replace('/^[^\w]+\s*/', '', $version);
     return $version;
 }
 
@@ -283,11 +297,14 @@ function getAccountInfo($id, $binPath, $providerName)
 {
     $cmd = getCliOverride($id, 'cmd_overrides', 'account');
     exec("sudo $binPath $cmd", $acct);
-    $accountInfo = stripArtifacts($acct);
-    if (empty($accountInfo)) {
-        $msg = sprintf(_("Account information not available from %s's Linux CLI."), $providerName);
-        $accountInfo[] = $msg;
+
+    foreach ($acct as &$item) {
+        $item = preg_replace('/^[^\w]+\s*/', '', $item);
     }
-    return $accountInfo;
+    if (empty($acct)) {
+        $msg = sprintf(_("Account information not available from %s's Linux CLI."), $providerName);
+        $acct[] = $msg;
+    }
+    return $acct;
 }