--- a/ForgeSVN/forgesvn/model/svn.py
+++ b/ForgeSVN/forgesvn/model/svn.py
@@ -77,7 +77,7 @@
 
     @LazyProperty
     def _url(self):
-        return 'file://%s/%s' % (self._repo.fs_path, self._repo.name)
+        return 'file://%s%s' % (self._repo.fs_path, self._repo.name)
 
     def shorthand_for_commit(self, commit):
         return '[r%d]' % self._revno(commit.object_id)
@@ -102,20 +102,26 @@
     def clone_from(self, source_url):
         '''Initialize a repo as a clone of another using svnsync'''
         self.init()
-        hook = os.path.join(self._repo.fs_path, 'hooks', 'pre-revprop-change', 'w')
-        with open(hook) as fp:
+        hook = os.path.join(
+            self._repo.fs_path,
+            self._repo.name,
+            'hooks',
+            'pre-revprop-change')
+        with open(hook, 'w') as fp:
             fp.write('#!/bin/sh\n')
-        os.chmod(hook, 755)
+        os.chmod(hook, 0755)
         log.info('Initialize %r as a clone of %s',
                  self._repo, source_url)
-        subprocess.call(['svnsync', 'init', self._url(), source_url],
+        p = subprocess.call(['svnsync', 'init', self._url, source_url],
                         stdin=subprocess.PIPE,
                         stdout=subprocess.PIPE,
                         stderr=subprocess.PIPE)
-        subprocess.call(['svnsync', '--non-interactive', 'sync', self._url()],
+        assert p == 0
+        p = subprocess.call(['svnsync', '--non-interactive', 'sync', self._url],
                         stdin=subprocess.PIPE,
                         stdout=subprocess.PIPE,
                         stderr=subprocess.PIPE)
+        assert p == 0
         self._repo.status = 'analyzing'
         session(self._repo).flush()
         log.info('... %r cloned, analyzing', self._repo)