| Index: gclient_scm.py
 | 
| diff --git a/gclient_scm.py b/gclient_scm.py
 | 
| index 79a0adf8f6b760bb4abf6379787b381f9df46c34..3baa071514272e74d1501a414d917918caa6a87a 100644
 | 
| --- a/gclient_scm.py
 | 
| +++ b/gclient_scm.py
 | 
| @@ -1196,18 +1196,13 @@ class SVNWrapper(SCMWrapper):
 | 
|             'Try using @unmanaged.\n%s') % (
 | 
|              self.checkout_path, from_info))
 | 
|  
 | 
| -    # Look for locked directories.
 | 
| -    dir_info = scm.SVN.CaptureStatus(
 | 
| -        None, os.path.join(self.checkout_path, '.'))
 | 
| -    if any(d[0][2] == 'L' for d in dir_info):
 | 
| -      try:
 | 
| -        self._Run(['cleanup', self.checkout_path], options)
 | 
| -      except subprocess2.CalledProcessError, e:
 | 
| -        # Get the status again, svn cleanup may have cleaned up at least
 | 
| -        # something.
 | 
| -        dir_info = scm.SVN.CaptureStatus(
 | 
| -            None, os.path.join(self.checkout_path, '.'))
 | 
| -
 | 
| +    try:
 | 
| +      self._Run(['cleanup', self.checkout_path], options)
 | 
| +    except subprocess2.CalledProcessError, e:
 | 
| +      # Look for locked directories.
 | 
| +      dir_info = scm.SVN.CaptureStatus(
 | 
| +          None, os.path.join(self.checkout_path, '.'))
 | 
| +      if any(d[0][2] == 'L' for d in dir_info):
 | 
|          # Try to fix the failures by removing troublesome files.
 | 
|          for d in dir_info:
 | 
|            if d[0][2] == 'L':
 | 
| @@ -1360,6 +1355,8 @@ class SVNWrapper(SCMWrapper):
 | 
|        # Don't reuse the args.
 | 
|        return self.update(options, [], file_list)
 | 
|  
 | 
| +    self._Run(['cleanup', self.checkout_path], options)
 | 
| +
 | 
|      def printcb(file_status):
 | 
|        if file_list is not None:
 | 
|          file_list.append(file_status[1])
 | 
| 
 |