diff --git a/doc/sphinxext/gen_rst.py b/doc/sphinxext/gen_rst.py
index 231d02759ad5fea1baa2de48899b8aae8cd0a321..de4b325fd0522e2195b58b25574bc524235b7b97 100644
--- a/doc/sphinxext/gen_rst.py
+++ b/doc/sphinxext/gen_rst.py
@@ -101,7 +101,7 @@ def extract_docstring(filename):
 
     docstring = ''
     first_par = ''
-    tokens = tokenize.generate_tokens(lines.__iter__().next)
+    tokens = tokenize.generate_tokens(iter(lines).next)
     for tok_type, tok_content, _, (erow, _), _ in tokens:
         tok_type = token.tok_name[tok_type]
         if tok_type in ('NEWLINE', 'COMMENT', 'NL', 'INDENT', 'DEDENT'):
diff --git a/examples/mixture/plot_gmm_classifier.py b/examples/mixture/plot_gmm_classifier.py
index 288ff2809e542b18a316cbdd6edb651d7e83e55b..92f113bb44e8254f66e5e42af98193753df1c7e9 100644
--- a/examples/mixture/plot_gmm_classifier.py
+++ b/examples/mixture/plot_gmm_classifier.py
@@ -54,7 +54,7 @@ iris = datasets.load_iris()
 # (25%) sets.
 skf = StratifiedKFold(iris.target, k=4)
 # Only take the first fold.
-train_index, test_index = skf.__iter__().next()
+train_index, test_index = next(iter(skf))
 
 
 X_train = iris.data[train_index]
diff --git a/sklearn/cross_validation.py b/sklearn/cross_validation.py
index 3e409d992c0f832832b905aedd3665f907831974..026f0d97c16d7d9df5f85d07549d7dbcf180fade 100644
--- a/sklearn/cross_validation.py
+++ b/sklearn/cross_validation.py
@@ -1216,7 +1216,7 @@ def train_test_split(*arrays, **options):
     """Split arrays or matrices into random train and test subsets
 
     Quick utility that wraps calls to ``check_arrays`` and
-    ``iter(ShuffleSplit(n_samples)).next()`` and application to input
+    ``next(iter(ShuffleSplit(n_samples)))`` and application to input
     data into a single call for splitting (and optionally subsampling)
     data in a oneliner.
 
@@ -1304,7 +1304,7 @@ def train_test_split(*arrays, **options):
                       train_size=train_size,
                       random_state=random_state,
                       indices=True)
-    train, test = iter(cv).next()
+    train, test = next(iter(cv))
     splitted = []
     for a in arrays:
         splitted.append(a[train])
diff --git a/sklearn/datasets/base.py b/sklearn/datasets/base.py
index 90b42fc02422046d9e418b3309c882bad19d0f77..82c1f21242fb01f16b091a6243969237e90aff55 100644
--- a/sklearn/datasets/base.py
+++ b/sklearn/datasets/base.py
@@ -231,7 +231,7 @@ def load_iris():
     module_path = dirname(__file__)
     data_file = csv.reader(open(join(module_path, 'data', 'iris.csv')))
     fdescr = open(join(module_path, 'descr', 'iris.rst'))
-    temp = data_file.next()
+    temp = next(data_file)
     n_samples = int(temp[0])
     n_features = int(temp[1])
     target_names = np.array(temp[2:])
diff --git a/sklearn/grid_search.py b/sklearn/grid_search.py
index 79dc6610f932f11fca1dd7c09fd68cd9ffdd2929..77ff71adf8349ffde3aa2aae049a8e3cbb5d42ff 100644
--- a/sklearn/grid_search.py
+++ b/sklearn/grid_search.py
@@ -389,7 +389,7 @@ class GridSearchCV(BaseEstimator, MetaEstimatorMixin):
 
         # Return early if there is only one grid point.
         if _has_one_grid_point(self.param_grid):
-            params = iter(grid).next()
+            params = next(iter(grid))
             base_clf.set_params(**params)
             base_clf.fit(X, y)
             self._best_estimator_ = base_clf
diff --git a/sklearn/tests/test_cross_validation.py b/sklearn/tests/test_cross_validation.py
index b20cc9f3faeb41364dacf38b6137418abca6f9e8..13ed2f298fd73e682e169903e698f3c05e61ec64 100644
--- a/sklearn/tests/test_cross_validation.py
+++ b/sklearn/tests/test_cross_validation.py
@@ -6,20 +6,20 @@ from scipy.sparse import coo_matrix
 
 from nose.tools import assert_true, assert_equal
 from nose.tools import assert_raises
-
-from ..utils.testing import assert_greater, assert_less
-from ..base import BaseEstimator
-from ..datasets import make_regression
-from ..datasets import load_iris
-from ..metrics import zero_one_score
-from ..metrics import f1_score
-from ..metrics import mean_squared_error
-from ..metrics import r2_score
-from ..metrics import explained_variance_score
-from ..svm import SVC
-from ..linear_model import Ridge
-from ..svm.sparse import SVC as SparseSVC
-from .. import cross_validation as cval
+from sklearn.utils.testing import assert_greater, assert_less
+
+from sklearn import cross_validation as cval
+from sklearn.base import BaseEstimator
+from sklearn.datasets import make_regression
+from sklearn.datasets import load_iris
+from sklearn.metrics import zero_one_score
+from sklearn.metrics import f1_score
+from sklearn.metrics import mean_squared_error
+from sklearn.metrics import r2_score
+from sklearn.metrics import explained_variance_score
+from sklearn.svm import SVC
+from sklearn.linear_model import Ridge
+from sklearn.svm.sparse import SVC as SparseSVC
 
 from numpy.testing import assert_array_almost_equal
 from numpy.testing import assert_array_equal