diff --git a/rsync_url.py b/rsync_url.py
index 49b6a32..968a627 100644
--- a/rsync_url.py
+++ b/rsync_url.py
@@ -1,6 +1,8 @@
 #-*- coding: utf-8 -*-
 
+import os
 import re
+
 import utils
 
 
@@ -150,6 +152,28 @@
                 return False
         return True
 
+    def _url_join(self, *suburls):
+        url = self.url
+        if len(url) > 1:
+            while url.endswith(os.path.sep):
+                url = url[:-1]
+
+        subs = os.path.sep.join(suburls).split(os.path.sep)
+        subs = [_ for _ in subs if _]
+
+        result = re.sub(r'^//', r'/', os.path.sep.join([url, ] + subs))
+        result = re.sub(r'([^:])//', r'\1/', result)
+        return result
+
     @property
     def url(self):
         return self._url
+
+    def url_in(self, *path):
+        result = self._url_join(*path)
+        if not result.endswith('/'):
+            result += '/'
+        return result
+
+    def url_is(self, *path):
+        return self._url_join(*path)
diff --git a/test_rsync_url.py b/test_rsync_url.py
index 11727f4..19c73a8 100644
--- a/test_rsync_url.py
+++ b/test_rsync_url.py
@@ -62,6 +62,20 @@
         self.log_locals(url)
         self.assertEqual(url.url, expected_result)
 
+    def url_in(self, remote, expected_result):
+        logger.info('"{}" - {}'.format(remote, expected_result))
+        url = rsync_url.RsyncUrl(remote)
+        self.log_locals(url)
+        for par, er in expected_result.items():
+            self.assertEqual(url.url_in(par), er)
+
+    def url_is(self, remote, expected_result):
+        logger.info('"{}" - {}'.format(remote, expected_result))
+        url = rsync_url.RsyncUrl(remote)
+        self.log_locals(url)
+        for par, er in expected_result.items():
+            self.assertEqual(url.url_is(par), er)
+
 testdata = yaml.load(open('test_rsync_url.yaml'))
 
 index = 1
diff --git a/test_rsync_url.yaml b/test_rsync_url.yaml
index eda964e..8e205c2 100644
--- a/test_rsync_url.yaml
+++ b/test_rsync_url.yaml
@@ -7,6 +7,16 @@
 #     - results
 'ubuntu@172.18.66.89:~':
   url: 'ubuntu@172.18.66.89:~'
+  url_in:
+    '': 'ubuntu@172.18.66.89:~/'
+    '/': 'ubuntu@172.18.66.89:~/'
+    '/first/level/': 'ubuntu@172.18.66.89:~/first/level/'
+    'first/level': 'ubuntu@172.18.66.89:~/first/level/'
+  url_is:
+    '': 'ubuntu@172.18.66.89:~'
+    '/': 'ubuntu@172.18.66.89:~'
+    '/first/level/': 'ubuntu@172.18.66.89:~/first/level'
+    'first/level': 'ubuntu@172.18.66.89:~/first/level'
   exact_match_num: 1
   classed: 'ssh'
   parsed:
@@ -52,6 +62,16 @@
   valid: True
 'johnivanov@172.18.66.89::mirror-sync/otlichniy/reg/exp':
   url: 'johnivanov@172.18.66.89::mirror-sync/otlichniy/reg/exp'
+  url_in:
+    '': 'johnivanov@172.18.66.89::mirror-sync/otlichniy/reg/exp/'
+    '/': 'johnivanov@172.18.66.89::mirror-sync/otlichniy/reg/exp/'
+    '/first/level/': 'johnivanov@172.18.66.89::mirror-sync/otlichniy/reg/exp/first/level/'
+    'first/level': 'johnivanov@172.18.66.89::mirror-sync/otlichniy/reg/exp/first/level/'
+  url_is:
+    '': 'johnivanov@172.18.66.89::mirror-sync/otlichniy/reg/exp'
+    '/': 'johnivanov@172.18.66.89::mirror-sync/otlichniy/reg/exp'
+    '/first/level/': 'johnivanov@172.18.66.89::mirror-sync/otlichniy/reg/exp/first/level'
+    'first/level': 'johnivanov@172.18.66.89::mirror-sync/otlichniy/reg/exp/first/level'
   exact_match_num: 1
   classed: 'rsync1'
   parsed_rsync:
@@ -104,6 +124,16 @@
   #valid: False
 'rsync://mirror-sync@172.18.66.89:7327/otlichniy/reg/exp':
   url: 'rsync://mirror-sync@172.18.66.89:7327/otlichniy/reg/exp'
+  url_in:
+    '': 'rsync://mirror-sync@172.18.66.89:7327/otlichniy/reg/exp/'
+    '/': 'rsync://mirror-sync@172.18.66.89:7327/otlichniy/reg/exp/'
+    '/first/level/': 'rsync://mirror-sync@172.18.66.89:7327/otlichniy/reg/exp/first/level/'
+    'first/level': 'rsync://mirror-sync@172.18.66.89:7327/otlichniy/reg/exp/first/level/'
+  url_is:
+    '': 'rsync://mirror-sync@172.18.66.89:7327/otlichniy/reg/exp'
+    '/': 'rsync://mirror-sync@172.18.66.89:7327/otlichniy/reg/exp'
+    '/first/level/': 'rsync://mirror-sync@172.18.66.89:7327/otlichniy/reg/exp/first/level'
+    'first/level': 'rsync://mirror-sync@172.18.66.89:7327/otlichniy/reg/exp/first/level'
   exact_match_num: 1
   classed: 'rsync2'
   parsed_rsync:
@@ -159,6 +189,16 @@
   valid: False
 '/':
   url: '/'
+  url_in:
+    '': '/'
+    '/': '/'
+    '/first/level/': '/first/level/'
+    'first/level': '/first/level/'
+  url_is:
+    '': '/'
+    '/': '/'
+    '/first/level/': '/first/level'
+    'first/level': '/first/level'
   exact_match_num: 1
   classed: 'path'
   parsed:
