diff --git a/rdiff-manager.py b/rdiff-manager.py
index 478183d32c1598d710e3044b05d1c9b04f69b3bb..87356b13bce6ff030a5a3fa9eb25d35af329ce82 100755
--- a/rdiff-manager.py
+++ b/rdiff-manager.py
@@ -28,13 +28,24 @@ class Host(object):
         return run_rdiff('--test-server', 'root@%s::/' % self.hostname)
 
     def test_directory(self):
+        # ensure destination is rdiff-backup target
         try:
-            os.makedirs(self.destination)
-        except OSError as e:
-            if os.access(self.destination, os.F_OK):
-                pass
-            else:
-                raise e
+            run_rdiff('--list-increments', self.destination)
+        except subprocess.CalledProcessError:
+            # check if base directory exists
+            try:
+                os.makedirs(self.destination)
+            except OSError as e:
+                if os.access(self.destination, os.X_OK):
+                    pass
+                else:
+                    raise e
+            # create baseline empty data directory
+            run_rdiff(*(self.run_backup_flags.split(' ') + [ '--exclude',
+                '**', 'root@%s::/' % (self.hostname), self.destination ] ) )
+        else:
+            pass
+
 
     def remove_old(self):
         # even with force, only increments are removed, never the most recent backup