diff --git a/src/python/dm/aps_user_db/cli/updateUsersFromApsDbCli.py b/src/python/dm/aps_user_db/cli/updateUsersFromApsDbCli.py
index 7b99e8c3c58c932faa1719d3fed27140dd03bd67..8b13a52746dfa7de0ebd198fe15ab70b1bdda38f 100755
--- a/src/python/dm/aps_user_db/cli/updateUsersFromApsDbCli.py
+++ b/src/python/dm/aps_user_db/cli/updateUsersFromApsDbCli.py
@@ -1,5 +1,6 @@
 #!/usr/bin/env python
 
+import datetime
 from dm.common.exceptions.invalidRequest import InvalidRequest
 from dm.common.cli.dmCli import DmCli
 from dm.common.utility.configurationManager import ConfigurationManager
@@ -19,13 +20,14 @@ Description:
     Updates all users in DM LDAP and database using information from APS DB. 
         """)
         ConfigurationManager.getInstance().setConfigFile('/home/oxygen/SVESELI/Work/DM/etc/dm.conf')
-        print ConfigurationManager.getInstance().getConfigOption('DsRestApiFactory', 'username')
+        self.logger.debug('Starting sync process')
         apsUserDbApi = ApsUserDbApi()
         userRestApi = DsRestApiFactory.getUserRestApi()
 
-
+        self.logger.debug('Retrieving APS users')
         apsUsers = apsUserDbApi.getApsUsers()
         self.logger.debug('Number of APS Users: %s' % len(apsUsers))
+        self.logger.debug('Retrieving DM users')
         dmUsers = userRestApi.getUsers()
         self.logger.debug('Number of DM Users: %s' % len(dmUsers))
         dmUserBadgeMap = {}
@@ -60,15 +62,25 @@ Description:
                 nCreatedUsers += 1
             else:
                 dmLastUpdate = dmUser.get('lastUpdate')
+                if dmLastUpdate:
+                    # need to convert DM last update time to datetime object
+                    # datetime cannot handle time zone at the moment
+                    timeZonePos = dmLastUpdate.rfind('-')
+                    dmLastUpdate = dmLastUpdate[0:timeZonePos]
+                    dmLastUpdate = datetime.datetime.strptime(dmLastUpdate, '%Y-%m-%d %H:%M:%S')
                 if not dmLastUpdate or dmLastUpdate < apsLastChangeDate:
                     id = dmUser.get('id')
                     self.logger.debug('Modifying user with badge %s: %s (DM id: %s)' % (badge, apsUser['name'], id))
+                    print apsUser
                     userRestApi.updateUser(id, username, firstName, lastName, middleName, email, badge, globusUsername, description, password, isLocalUser, lastUpdate)
                     nUpdatedUsers += 1
                 else:
                     # User is up to date
                     pass
            
+        self.logger.debug('Number of new DM users: %s' % (nCreatedUsers))
+        self.logger.debug('Number of updated DM users: %s' % (nUpdatedUsers))
+        self.logger.debug('Completed sync process')
 
         #ldapUserManager = LdapUserManager('ldaps://dmid-vm.xray.aps.anl.gov:636', 'uid=dmadmin,ou=People,o=aps.anl.gov,dc=aps,dc=anl,dc=gov', '/tmp/ldapPassword', userDnFormat='uid=%s,ou=DM,ou=People,o=aps.anl.gov,dc=aps,dc=anl,dc=gov', groupDnFormat='cn=%s,ou=DM,ou=Group,o=aps.anl.gov,dc=aps,dc=anl,dc=gov', minGidNumber=66000)
         #ldapUser = ldapUserManager.getUserInfo(username)
diff --git a/src/python/dm/ds_web_service/api/userRestApi.py b/src/python/dm/ds_web_service/api/userRestApi.py
index 4a7946d94830c4195a32ba8c51617dd681af8173..31f9bf52fcdb73b3fb6315aa4378722ccc871768 100755
--- a/src/python/dm/ds_web_service/api/userRestApi.py
+++ b/src/python/dm/ds_web_service/api/userRestApi.py
@@ -94,12 +94,12 @@ class UserRestApi(DsRestApi):
         if isLocalUser:
             url += '&isLocaUser=%s' % isLocalUser
         if lastUpdate:
-            url += '&lastUpdate=%s' % lastUpdate
+            url += '&lastUpdate=%s' % Encoder.encode(str(lastUpdate))
         if not url:
             raise InvalidRequest('No user attributes have been modified.')
         # Remove first '&' character
         url = '%s/users/%s?%s' % (self.getContextRoot(), id, url[1:])
-        responseData = self.sendSessionRequest(url=url, method='POST')
+        responseData = self.sendSessionRequest(url=url, method='PUT')
         return UserInfo(responseData)
 
     @DsRestApi.execute