| Index: checkout.py
 | 
| diff --git a/checkout.py b/checkout.py
 | 
| index 21c283e8cbd4e3860f8a52fbe01f2e7bcbc9ea1f..09ea9c3fabba116c7d25c571260ae198f98aedee 100644
 | 
| --- a/checkout.py
 | 
| +++ b/checkout.py
 | 
| @@ -123,8 +123,10 @@ class RawCheckout(CheckoutBase):
 | 
|            full_dir = os.path.join(self.project_path, dirname)
 | 
|            if dirname and not os.path.isdir(full_dir):
 | 
|              os.makedirs(full_dir)
 | 
| +
 | 
| +          filepath = os.path.join(self.project_path, p.filename)
 | 
|            if p.is_binary:
 | 
| -            with open(os.path.join(filename), 'wb') as f:
 | 
| +            with open(filepath, 'wb') as f:
 | 
|                f.write(p.get())
 | 
|            else:
 | 
|              if p.diff_hunks:
 | 
| @@ -132,9 +134,9 @@ class RawCheckout(CheckoutBase):
 | 
|                    ['patch', '-p%s' % p.patchlevel],
 | 
|                    stdin=p.get(),
 | 
|                    cwd=self.project_path)
 | 
| -            elif p.is_new:
 | 
| +            elif p.is_new and not os.path.exists(filepath):
 | 
|                # There is only a header. Just create the file.
 | 
| -              open(os.path.join(self.project_path, p.filename), 'w').close()
 | 
| +              open(filepath, 'w').close()
 | 
|          for post in post_processor:
 | 
|            post(self, p)
 | 
|        except OSError, e:
 | 
| @@ -276,17 +278,19 @@ class SvnCheckout(CheckoutBase, SvnMixIn):
 | 
|              stdout += self._check_output_svn(
 | 
|                  ['add', dir_to_create, '--force'], credentials=False)
 | 
|  
 | 
| +          filepath = os.path.join(self.project_path, p.filename)
 | 
|            if p.is_binary:
 | 
| -            with open(os.path.join(self.project_path, p.filename), 'wb') as f:
 | 
| +            with open(filepath, 'wb') as f:
 | 
|                f.write(p.get())
 | 
|            else:
 | 
|              if p.diff_hunks:
 | 
|                cmd = ['patch', '-p%s' % p.patchlevel, '--forward', '--force']
 | 
|                stdout += subprocess2.check_output(
 | 
|                    cmd, stdin=p.get(), cwd=self.project_path)
 | 
| -            elif p.is_new:
 | 
| -              # There is only a header. Just create the file.
 | 
| -              open(os.path.join(self.project_path, p.filename), 'w').close()
 | 
| +            elif p.is_new and not os.path.exists(filepath):
 | 
| +              # There is only a header. Just create the file if it doesn't
 | 
| +              # exist.
 | 
| +              open(filepath, 'w').close()
 | 
|            if p.is_new:
 | 
|              stdout += self._check_output_svn(
 | 
|                  ['add', p.filename, '--force'], credentials=False)
 | 
| 
 |