diff --git a/addon.xml b/addon.xml
index dcd5bca9..d0d5d8ae 100644
--- a/addon.xml
+++ b/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon  id="plugin.video.jellyfin"
         name="Jellyfin"
-        version="0.3.1"
+        version="0.3.2"
         provider-name="Jellyfin Contributors, angelblue05">
   <requires>
     <import addon="xbmc.python" version="2.25.0"/>
@@ -36,9 +36,9 @@
     <summary lang="en"></summary>
     <description lang="en">Welcome to Jellyfin for Kodi!&#10;A whole new way to manage and view your media library. The Jellyfin addon for Kodi combines the best of Kodi - ultra smooth navigation, beautiful UIs and playback of any file under the sun, and Jellyfin - the most powerful fully open source multi-client media metadata indexer and server.&#10;&#10;Jellyfin for Kodi is the absolute best way to enjoy the incredible Kodi playback engine combined with the power of Jellyfin's centralized database. Features:&#10;* Direct integration with the Kodi library for native Kodi speed&#10;* Instant synchronization with the Jellyfin server&#10;* Full support for Movie, TV and Music collections&#10;* Jellyfin Server direct stream and transcoding support - use Kodi when you are away from home!</description>
     <news>
-    v0.3.1 (2019-09-28)
-      #90 Fix incremental sync never finishing
-      #89 Make basic auth login case insensitive
+    v0.3.2 (2019-09-28)
+      #94 Improve address normalization in connection manager
+      #93 Remove stray single quote resulting in crash
     </news>
     <assets>
       <icon>resources/icon.png</icon>
diff --git a/resources/lib/jellyfin/core/connection_manager.py b/resources/lib/jellyfin/core/connection_manager.py
index 9875694c..410f9f80 100644
--- a/resources/lib/jellyfin/core/connection_manager.py
+++ b/resources/lib/jellyfin/core/connection_manager.py
@@ -4,12 +4,13 @@
 
 import json
 import logging
-import hashlib
 import socket
 import time
 from datetime import datetime
 from distutils.version import LooseVersion
 
+import urllib3
+
 from credentials import Credentials
 from http import HTTP
 
@@ -109,7 +110,7 @@ class ConnectionManager(object):
 
         if not server:
             raise AttributeError("server cannot be empty")
-            
+
         try:
             request = {
                 'type': "POST",
@@ -134,6 +135,8 @@ class ConnectionManager(object):
         if not address:
             return False
 
+        address = self._normalize_address(address)
+
         def _on_fail():
             LOG.error("connectToAddress %s failed", address)
             return self._resolve_failure()
@@ -470,13 +473,18 @@ class ConnectionManager(object):
 
     def _normalize_address(self, address):
         # Attempt to correct bad input
-        address = address.strip()
-        address = address.lower()
+        url = urllib3.util.parse_url(address.strip())
 
-        if 'http' not in address:
-            address = "http://%s" % address
+        if url.scheme is None:
+            url = url._replace(scheme='http')
 
-        return address
+        if url.scheme == 'http' and url.port == 80:
+            url = url._replace(port=None)
+
+        if url.scheme == 'https' and url.port == 443:
+            url = url._replace(port=None)
+
+        return url.url
 
     def _save_user_info_into_credentials(self, server, user):