diff --git a/include/password-methods/class_password-methods-clear.inc b/include/password-methods/class_password-methods-clear.inc
index d3d1ef3e3814ce1224a211f69764132e0f14275c..2f21f22eac1a5dc1f9ed8b57b9d7742c7a657d7c 100644
--- a/include/password-methods/class_password-methods-clear.inc
+++ b/include/password-methods/class_password-methods-clear.inc
@@ -31,7 +31,7 @@
  */
 class passwordMethodClear extends passwordMethod
 {
-  var $lockable = FALSE;
+  protected $lockable = FALSE;
 
   /*!
    * \brief passwordMethodClear Constructor
diff --git a/include/password-methods/class_password-methods.inc b/include/password-methods/class_password-methods.inc
index 11719942c4936ff575018c450459d12de21d63d7..efbf1a11905066500def07677f54c7132003cd42 100644
--- a/include/password-methods/class_password-methods.inc
+++ b/include/password-methods/class_password-methods.inc
@@ -32,7 +32,8 @@ class passwordMethod
   var $attrs    = array();
   var $display  = FALSE;
   var $hash     = '';
-  var $lockable = TRUE;
+
+  protected $lockable = TRUE;
 
   /*!
    * \brief Password method contructor
@@ -62,6 +63,16 @@ class passwordMethod
     return TRUE;
   }
 
+  /*!
+   * \brief If we can lock the password
+   *
+   * \return boolean
+   */
+  function is_lockable()
+  {
+    return $this->lockable;
+  }
+
   /*!
    * \brief Is locked
    *
@@ -123,7 +134,7 @@ class passwordMethod
       return FALSE;
     }
     if ($mode != 'LOCK' && $mode != 'UNLOCK') {
-      die('Invalid mode "'.$mode.'"');
+      throw new FusionDirectoryException('Invalid mode "'.$mode.'"');
     }
 
     /* Get current password hash */
@@ -142,7 +153,6 @@ class passwordMethod
 
     /* We can only lock/unlock non-empty passwords */
     if (!empty($pwd)) {
-
       /* Check if this entry is already locked. */
       if (!preg_match("/^[^\}]*+\}!/", $pwd)) {
         if ($mode == 'UNLOCK') {
diff --git a/plugins/admin/users/class_userManagement.inc b/plugins/admin/users/class_userManagement.inc
index 84837ebe2aa0c7b627313a3dee12253a5abbd5d2..72df50b8f14a79eab49da9c56ae94dd0d21e778d 100644
--- a/plugins/admin/users/class_userManagement.inc
+++ b/plugins/admin/users/class_userManagement.inc
@@ -170,6 +170,16 @@ class userManagement extends simpleManagement
         $method   = passwordMethod::get_method($pwd, $val['dn']);
         $success  = TRUE;
         if ($method instanceOf passwordMethod) {
+          if (!$method->is_lockable()) {
+            $hn = $method->get_hash_name();
+            if (is_array($hn)) {
+              $hn = $hn[0];
+            }
+            msg_dialog::display(_('Account locking'),
+                sprintf(_('Password method "%s" does not support locking. Account "%s" has not been locked!'),
+                  $hn, $dn), ERROR_DIALOG);
+            return;
+          }
           if ($type == 'toggle') {
             if ($method->is_locked($val['dn'])) {
               $success = $method->unlock_account($val['dn']);
@@ -189,8 +199,8 @@ class userManagement extends simpleManagement
               $hn = $hn[0];
             }
             msg_dialog::display(_('Account locking'),
-                sprintf(_('Password method "%s" does not support locking. Account "%s" has not been locked!'),
-                  $hn, $dn), WARNING_DIALOG);
+                sprintf(_('Locking failed using password method "%s". Account "%s" has not been locked!'),
+                  $hn, $dn), ERROR_DIALOG);
           }
         }
       }