diff --git a/ldap_servers/LdapServer.class.php b/ldap_servers/LdapServer.class.php
index 3d8a413..98842d5 100644
--- a/ldap_servers/LdapServer.class.php
+++ b/ldap_servers/LdapServer.class.php
@@ -335,6 +335,48 @@ class LdapServer {
       }
     }
   }
+  
+  /**
+   * Modify an LDAP Entry
+   */
+  function user_modify($userdn, $attributes) {
+    $status = ldap_modify($this->connection, $userdn, $attributes);
+    if (!$status) {
+      watchdog(
+        'ldapauth', 
+        'Error: user_modify() failed to modify ldap entry w/ base DN "!dn" with values: !values', 
+        array('!dn' => $userdn, '!value' => var_export($values, TRUE)),
+        WATCHDOG_ERROR
+      );
+    }
+    
+    return $status;
+  }
+  
+  /**
+   * Modify a password
+   */
+  function password_modify($userdn, $new_password) {
+    
+    $new_password = "\"" . $new_password . "\"";
+    $len = strlen($new_password);
+    $new_pass = NULL;
+    for ($i = 0; $i < $len; $i++) {
+      $new_pass .= "{$new_password{$i}}\000";
+    }
+    
+    $status = ldap_mod_replace($this->connection, $userdn, array('unicodePwd' => $new_pass));
+    if (!$status) {
+      watchdog(
+        'ldapauth',
+        'Error: password_modify() failed to modify ldap password w/ base DN "!dn"',
+        array('!dn' => $userdn),
+        WATCHDOG_ERROR
+      );
+    }
+    
+    return $status;
+  }
 }
 
 
