diff --git a/python/pyplugin_installer/installer_data.py b/python/pyplugin_installer/installer_data.py
index d064a71..02f7088 100644
--- a/python/pyplugin_installer/installer_data.py
+++ b/python/pyplugin_installer/installer_data.py
@@ -341,8 +341,9 @@ class Repositories(QObject):
         self.mRepositories[key]["QRequest"] = QNetworkRequest(url)
         authcfg = self.mRepositories[key]["authcfg"]
         if authcfg and isinstance(authcfg, basestring):
+            authcfg = authcfg.strip()
             if not QgsAuthManager.instance().updateNetworkRequest(
-                    self.mRepositories[key]["QRequest"], authcfg.strip()):
+                    self.mRepositories[key]["QRequest"], authcfg):
                 msg = QCoreApplication.translate(
                     "QgsPluginInstaller",
                     "Update of network request with authentication "
@@ -353,6 +354,7 @@ class Repositories(QObject):
         self.mRepositories[key]["QRequest"].setAttribute(QNetworkRequest.User, key)
         self.mRepositories[key]["xmlData"] = QgsNetworkAccessManager.instance().get(self.mRepositories[key]["QRequest"])
         self.mRepositories[key]["xmlData"].setProperty('reposName', key)
+        self.mRepositories[key]["xmlData"].setProperty('authcfg', authcfg)
         self.mRepositories[key]["xmlData"].downloadProgress.connect(self.mRepositories[key]["Relay"].dataReadProgress)
         self.mRepositories[key]["xmlData"].finished.connect(self.xmlDownloaded)
 
@@ -376,6 +378,7 @@ class Repositories(QObject):
         """ populate the plugins object with the fetched data """
         reply = self.sender()
         reposName = reply.property('reposName')
+        authcfg = reply.property('authcfg')
         if reply.error() != QNetworkReply.NoError:                             # fetching failed
             self.mRepositories[reposName]["state"] = 3
             self.mRepositories[reposName]["error"] = reply.errorString()
@@ -439,7 +442,8 @@ class Repositories(QObject):
                         "version_installed": "",
                         "zip_repository": reposName,
                         "library": "",
-                        "readonly": False
+                        "readonly": False,
+                        "authcfg": authcfg
                     }
                     qgisMinimumVersion = pluginNodes.item(i).firstChildElement("qgis_minimum_version").text().strip()
                     if not qgisMinimumVersion:
diff --git a/python/pyplugin_installer/qgsplugininstallerinstallingdialog.py b/python/pyplugin_installer/qgsplugininstallerinstallingdialog.py
index 4ab4c22..f771cb5 100644
--- a/python/pyplugin_installer/qgsplugininstallerinstallingdialog.py
+++ b/python/pyplugin_installer/qgsplugininstallerinstallingdialog.py
@@ -24,7 +24,7 @@
  ***************************************************************************/
 """
 
-from PyQt4.QtCore import QDir, QUrl, QFile, QCoreApplication
+from PyQt4.QtCore import QDir, QUrl, QFile, QCoreApplication, QgsAuthManager, QTimer
 from PyQt4.QtGui import QDialog
 from PyQt4.QtNetwork import QNetworkRequest, QNetworkReply
 
@@ -57,11 +57,24 @@ class QgsPluginInstallerInstallingDialog(QDialog, Ui_QgsPluginInstallerInstallin
         self.file = QFile(tmpPath)
 
         self.request = QNetworkRequest(url)
-        self.reply = QgsNetworkAccessManager.instance().get(self.request)
-        self.reply.downloadProgress.connect(self.readProgress)
-        self.reply.finished.connect(self.requestFinished)
-
-        self.stateChanged(4)
+        authcfg = plugin["authcfg"] if 'authcfg' in plugin else None
+        authfailed = False
+        if authcfg and not QgsAuthManager.instance().updateNetworkRequest(
+                self.request, authcfg):
+            authfailed = True
+            self.mResult = self.tr(
+                "QgsPluginInstaller",
+                "Update of network request with authentication "
+                "credentials FAILED for configuration '{0}'").format(authcfg)
+
+        if authfailed:
+            QTimer.singleShot(0, self.reject)
+        else:
+            self.reply = QgsNetworkAccessManager.instance().get(self.request)
+            self.reply.downloadProgress.connect(self.readProgress)
+            self.reply.finished.connect(self.requestFinished)
+
+            self.stateChanged(4)
 
     # ----------------------------------------- #
     def result(self):
