diff --git a/synapse/config/_base.py b/synapse/config/_base.py
index dfc115d8e80fde2dc2921b99583365f0dd8d7c2e..9b0f8c3c322d2b2bf9c8560f8ce21fd68bd309fb 100644
--- a/synapse/config/_base.py
+++ b/synapse/config/_base.py
@@ -50,8 +50,9 @@ class Config(object):
             )
         return cls.abspath(file_path)
 
-    @staticmethod
-    def ensure_directory(dir_path):
+    @classmethod
+    def ensure_directory(cls, dir_path):
+        dir_path = cls.abspath(dir_path)
         if not os.path.exists(dir_path):
             os.makedirs(dir_path)
         if not os.path.isdir(dir_path):