diff --git a/html5/verto/verto_communicator/js/app.js b/html5/verto/verto_communicator/js/app.js
index 98a4d4931f..1fcabae3c9 100644
--- a/html5/verto/verto_communicator/js/app.js
+++ b/html5/verto/verto_communicator/js/app.js
@@ -17,8 +17,8 @@ var vertoApp = angular.module('vertoApp', [
   'ui.gravatar',
 ]);
 
-vertoApp.config(['$routeProvider', 'gravatarServiceProvider',
-  function($routeProvider, gravatarServiceProvider) {
+vertoApp.config(['$routeProvider', 'gravatarServiceProvider', 'toastrConfig',
+  function($routeProvider, gravatarServiceProvider, toastrConfig) {
     $routeProvider.
     when('/login', {
       title: 'Login',
@@ -52,6 +52,10 @@ vertoApp.config(['$routeProvider', 'gravatarServiceProvider',
     gravatarServiceProvider.defaults = {
       default: 'mm'  // Mystery man as default for missing avatars
     };
+
+    angular.extend(toastrConfig, {
+      maxOpened: 4
+    });
   }
 ]);
 
diff --git a/html5/verto/verto_communicator/js/controllers.js b/html5/verto/verto_communicator/js/controllers.js
index a4bfd07b50..eb635869bc 100644
--- a/html5/verto/verto_communicator/js/controllers.js
+++ b/html5/verto/verto_communicator/js/controllers.js
@@ -463,9 +463,9 @@ vertoControllers.controller('MainController', ['$scope', '$rootScope',
 
 
 vertoControllers.controller('ChatController', ['$scope', '$rootScope', '$http',
-  '$location', '$anchorScroll', '$timeout', 'verto',
+  '$location', '$anchorScroll', '$timeout', 'toastr', 'verto', 'storage',
   function($scope, $rootScope, $http, $location, $anchorScroll, $timeout,
-    verto) {
+    toastr, verto, storage) {
     console.debug('Executing ChatController.');
 
     function scrollToChatBottom() {
@@ -496,11 +496,24 @@ vertoControllers.controller('ChatController', ['$scope', '$rootScope', '$http',
     $rootScope.$on('chat.newMessage', function(event, data) {
       data.created_at = new Date();
       console.log('chat.newMessage', data);
+
       $scope.$apply(function() {
         $scope.messages.push(data);
-        if (data.from != verto.data.name && (!$scope.chatStatus ||
-            $scope.activePane != 'chat')) {
+        if(data.from != storage.data.name &&
+           (angular.element('#wrapper').hasClass('toggled') ||
+           $scope.activePane != 'chat')) {
+          toastr.info(data.body, data.from, {onHidden: function(clicked) {
+            if(clicked) {
+              $scope.chatStatus = false;
+              angular.element('#wrapper').removeClass('toggled');
+              $rootScope.activePane = 'chat';
+              $scope.activePane = 'chat';
+              $scope.$apply();
+              return true;
+            }
+          }});
           ++$rootScope.chat_counter;
+          return true;
         }
         $timeout(function() {
           scrollToChatBottom();
@@ -803,7 +816,6 @@ vertoControllers.controller('InCallController', ['$rootScope', '$scope',
     $scope.dialpadTemplate = '';
     $scope.incall = true;
 
-
     if (storage.data.videoCall) {
       $scope.callTemplate = 'partials/video_call.html';
     }