diff --git a/ForgeSVN/forgesvn/model/svn.py b/ForgeSVN/forgesvn/model/svn.py
index 128dc2e..10ac017 100644
--- a/ForgeSVN/forgesvn/model/svn.py
+++ b/ForgeSVN/forgesvn/model/svn.py
@@ -3,6 +3,7 @@
 import string
 import logging
 import subprocess
+from subprocess import Popen, PIPE
 from hashlib import sha1
 from cStringIO import StringIO
 from datetime import datetime
@@ -107,6 +108,17 @@
                 shortlink=None,
                 summary=None)
 
+class SVNCalledProcessError(Exception):
+    def __init__(self, cmd, returncode, stdout, stderr):
+        self.cmd = cmd
+        self.returncode = returncode
+        self.stdout = stdout
+        self.stderr = stderr
+
+    def __str__(self):
+        return "Command: '%s' returned non-zero exit status %s\nSTDOUT: %s\nSTDERR: %s" % \
+            (self.cmd, self.returncode, self.stdout, self.stderr)
+
 class SVNImplementation(M.RepositoryImplementation):
     post_receive_template = string.Template(
         '#!/bin/bash\n'
@@ -173,8 +185,16 @@
         with open(fn, 'wb') as fp:
             fp.write('#!/bin/sh\n')
         os.chmod(fn, 0755)
-        subprocess.check_call(['svnsync', 'init', self._url, source_url])
-        subprocess.check_call(['svnsync', '--non-interactive', 'sync', self._url])
+
+        def check_call(cmd):
+            p = Popen(cmd, stdout=PIPE, stderr=PIPE)
+            p.wait()
+            if p.returncode != 0:
+                stdout, stderr = p.communicate()
+                raise SVNCalledProcessError(cmd, p.returncode, stdout, stderr)
+
+        check_call(['svnsync', 'init', self._url, source_url])
+        check_call(['svnsync', '--non-interactive', 'sync', self._url])
         self._repo.status = 'analyzing'
         session(self._repo).flush()
         log.info('... %r cloned, analyzing', self._repo)
