diff --git a/sklearn/datasets/base.py b/sklearn/datasets/base.py
index 2ad2bdb16cbfad129997a586d2d41e546a3a1a85..58762a2fce5cc779950b8f6f0dadabaad0b3e0b4 100644
--- a/sklearn/datasets/base.py
+++ b/sklearn/datasets/base.py
@@ -568,14 +568,19 @@ def load_diabetes(return_X_y=False):
 
         .. versionadded:: 0.18
     """
-    base_dir = join(dirname(__file__), 'data')
+
+    module_path = dirname(__file__)
+    base_dir = join(module_path, 'data')
     data = np.loadtxt(join(base_dir, 'diabetes_data.csv.gz'))
     target = np.loadtxt(join(base_dir, 'diabetes_target.csv.gz'))
 
+    with open(join(module_path, 'descr', 'diabetes.rst')) as rst_file:
+        fdescr = rst_file.read()
+
     if return_X_y:
         return data, target
 
-    return Bunch(data=data, target=target,
+    return Bunch(data=data, target=target, DESCR=fdescr,
                  feature_names=['age', 'sex', 'bmi', 'bp',
                                 's1', 's2', 's3', 's4', 's5', 's6'])
 
diff --git a/sklearn/datasets/tests/test_base.py b/sklearn/datasets/tests/test_base.py
index c0dd5101904d911f55bb5df2efe704ef48fe8f32..5c171561bd58c8837ad2fc5ce8473a317b3ac954 100644
--- a/sklearn/datasets/tests/test_base.py
+++ b/sklearn/datasets/tests/test_base.py
@@ -173,6 +173,7 @@ def test_load_diabetes():
     assert_equal(res.data.shape, (442, 10))
     assert_true(res.target.size, 442)
     assert_equal(len(res.feature_names), 10)
+    assert_true(res.DESCR)
 
     # test return_X_y option
     X_y_tuple = load_diabetes(return_X_y=True)