diff --git a/apigee_sync_test.go b/apigee_sync_test.go
index b0fead6..f7144a1 100644
--- a/apigee_sync_test.go
+++ b/apigee_sync_test.go
@@ -413,11 +413,12 @@
 		}, 3)
 
 		It("Reuse http.Client connection for multiple concurrent requests", func() {
+			var tr *http.Transport
 			server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
 			}))
-			tr := &http.Transport{
-				MaxIdleConnsPerHost: maxIdleConnsPerHost,
-			}
+			tr = util.Transport(config.GetString(util.ConfigfwdProxyPortURL))
+			tr.MaxIdleConnsPerHost = maxIdleConnsPerHost
+
 			var rspcnt int = 0
 			ch := make(chan *http.Response)
 			client := &http.Client{Transport: tr}
diff --git a/init.go b/init.go
index fad1db4..b7f470e 100644
--- a/init.go
+++ b/init.go
@@ -22,6 +22,7 @@
 	"time"
 
 	"github.com/apid/apid-core"
+	"github.com/apid/apid-core/util"
 )
 
 const (
@@ -82,6 +83,7 @@
 	config.SetDefault(configPollInterval, 120*time.Second)
 	config.SetDefault(configSnapshotProtocol, "sqlite")
 	config.SetDefault(configDiagnosticMode, false)
+
 	name, errh := os.Hostname()
 	if (errh != nil) && (len(config.GetString(configName)) == 0) {
 		log.Errorf("Not able to get hostname for kernel. Please set '%s' property in config", configName)
@@ -93,9 +95,11 @@
 
 func initVariables() error {
 
-	tr := &http.Transport{
-		MaxIdleConnsPerHost: maxIdleConnsPerHost,
-	}
+	var tr *http.Transport
+
+	tr = util.Transport(config.GetString(util.ConfigfwdProxyPortURL))
+	tr.MaxIdleConnsPerHost = maxIdleConnsPerHost
+
 	httpclient = &http.Client{
 		Transport: tr,
 		Timeout:   httpTimeout,
diff --git a/token.go b/token.go
index 4c344e9..95d4b06 100644
--- a/token.go
+++ b/token.go
@@ -18,6 +18,7 @@
 	"bytes"
 	"encoding/json"
 	"errors"
+	"github.com/apid/apid-core/util"
 	"io/ioutil"
 	"net/http"
 	"net/url"
@@ -174,7 +175,10 @@
 			req.Header.Set("updated_at_apid", time.Now().Format(time.RFC3339))
 		}
 
-		client := &http.Client{Timeout: httpTimeout}
+		client := &http.Client{
+			Transport: util.Transport(config.GetString(util.ConfigfwdProxyPortURL)),
+			Timeout:   httpTimeout,
+		}
 		resp, err := client.Do(req)
 		if err != nil {
 			log.Errorf("Unable to Connect to Edge Proxy Server: %v", err)
