diff --git a/sklearn/datasets/covtype.py b/sklearn/datasets/covtype.py
index 6d34cd35754f46c1e80ad077e20d7b7ab702626e..a529e8579a7c045a69744260d7e01ea86001185f 100644
--- a/sklearn/datasets/covtype.py
+++ b/sklearn/datasets/covtype.py
@@ -89,7 +89,8 @@ def fetch_covtype(data_home=None, download_if_missing=True,
     available = exists(samples_path)
 
     if download_if_missing and not available:
-        makedirs(covtype_dir, exist_ok=True)
+        if not exists(covtype_dir):
+            makedirs(covtype_dir)
         logger.warning("Downloading %s" % URL)
         f = BytesIO(urlopen(URL).read())
         Xy = np.genfromtxt(GzipFile(fileobj=f), delimiter=',')
diff --git a/sklearn/datasets/rcv1.py b/sklearn/datasets/rcv1.py
index 0933155c0afc102ee024e8d671fd558bd3c23b47..b3ecbe1d94e2408caccae17fe6b58fe2157fcb56 100644
--- a/sklearn/datasets/rcv1.py
+++ b/sklearn/datasets/rcv1.py
@@ -114,7 +114,8 @@ def fetch_rcv1(data_home=None, subset='all', download_if_missing=True,
     data_home = get_data_home(data_home=data_home)
     rcv1_dir = join(data_home, "RCV1")
     if download_if_missing:
-        makedirs(rcv1_dir, exist_ok=True)
+        if not exists(rcv1_dir):
+            makedirs(rcv1_dir)
 
     samples_path = _pkl_filepath(rcv1_dir, "samples.pkl")
     sample_id_path = _pkl_filepath(rcv1_dir, "sample_id.pkl")