diff --git a/app/common/services/userModel.js b/app/common/services/userModel.js
index f82c1f1..43437c5 100644
--- a/app/common/services/userModel.js
+++ b/app/common/services/userModel.js
@@ -22,8 +22,15 @@
                                 || response.status === undefined)){
                             sessionStorage.setItem('LOGIN_ID', username);
                             callback(true);
+                        }else if(response && response.data && response.data.data
+                                 && response.data.data.description){
+                            callback(false, response.data.data.description);
+                        }else if(response && response.message){
+                            callback(false, response.message);
+                        }else if(error){
+                            callback(false, 'Server unreachable');
                         }else{
-                            callback(false, error);
+                            callback(false, 'Internal error');
                         }
                     });
                 },
diff --git a/app/login/controllers/login-controller.html b/app/login/controllers/login-controller.html
index 805e64a..ec88c0b 100644
--- a/app/login/controllers/login-controller.html
+++ b/app/login/controllers/login-controller.html
@@ -23,8 +23,7 @@
 
                 <input id="login__submit" class="btn-primary submit" type="button" value="Log in" role="button" ng-click="login(host, username, password)" ng-class="{error: error}" ng-disabled="dataService.loading">
 
-                <p class="login__error-msg" role="alert" ng-if="error">Incorrect username or password</p>
-                <p class="login__error-msg" role="alert" ng-if="server_unreachable">Server unreachable</p>
+                <p class="login__error-msg" role="alert" ng-if="error">{{description}}</p>
             </form>
         </div>
     </div>
diff --git a/app/login/controllers/login-controller.js b/app/login/controllers/login-controller.js
index c2ed383..1f87871 100644
--- a/app/login/controllers/login-controller.js
+++ b/app/login/controllers/login-controller.js
@@ -30,7 +30,7 @@
                 };
                 $scope.login = function(host, username, password){
                     $scope.error = false;
-                    $scope.server_unreachable = false;
+                    $scope.description = false;
 
                     if(!username || username == "" ||
                        !password || password == "" ||
@@ -39,15 +39,14 @@
                         return false;
                     }else{
                         $scope.dataService.setHost(host);
-                        userModel.login(username, password, function(status, unreachable){
+                        userModel.login(username, password, function(status, description){
                             if(status){
                                 $scope.$emit('user-logged-in',{});
                                 $window.location.hash = '#/overview/server';
                             }else{
-                                if(unreachable){
-                                   $scope.server_unreachable = true;
-                                }else{
-                                    $scope.error = true;
+                                $scope.error = true;
+                                if(description){
+                                   $scope.description = description;
                                 }
                            };
                         });
