diff --git a/ym.js b/ym.js
index c2542b0..2d8eb0d 100644
--- a/ym.js
+++ b/ym.js
@@ -181,7 +181,9 @@ function start(_config, _logger) {
         broadcast(config.yahoomessenger.report_to, '@' + data.sender + ': ' + message, partner);
 
         if ((direction == 'IN') && (isAdmin(partner))) {
+
             if (message.charAt(0) == '@') {
+
                 target = message.split(' ', 1).join();
                 target = target.slice(1);
 
@@ -193,7 +195,9 @@ function start(_config, _logger) {
                 logger.info('Forward to ' + target + ': ' + messageToForward);
                 pm(target, '@' + partner + ': ' + messageToForward);
 
-            } else if (message.charAt(0) == '+') {
+            }
+            else if (message.charAt(0) == '+') {
+
                 target = message.split(' ', 1).join();
                 target = target.slice(1);
 
@@ -205,10 +209,24 @@ function start(_config, _logger) {
                 logger.info('Clean forward to ' + target + ': ' + messageToForward);
                 pm(target, messageToForward);
 
-            } else if (message == '!relogin') {
+            }
+            else if (message.startsWith('!relogin')) {
+
                 broadcast(config.yahoomessenger.report_to, 'relogin requested by' + data.sender);
                 logger.info('Relogin request by pm');
                 relogin();
+
+            }
+            else if (message.startsWith('!setstatus ')) {
+
+                logger.info('Set status request by pm');
+
+                var newStatus = message.replace('!setstatus').trim();
+
+                broadcast(config.yahoomessenger.report_to, 'Set new status requested by' + data.sender + ': ' + newStatus);
+                config.yahoomessenger.status = newStatus;
+                YahooMessenger.setCustomAwayStatus(config.yahoomessenger.status);
+
             }
         }
     }