diff --git a/scikits/learn/linear_model/ridge.py b/scikits/learn/linear_model/ridge.py
index 4dc849efb0fe65cef9534cf63e4e27f860f625ca..36a9e50e56b33e083bfdb9c9bc0c81f91e2e1c96 100644
--- a/scikits/learn/linear_model/ridge.py
+++ b/scikits/learn/linear_model/ridge.py
@@ -6,9 +6,6 @@ Ridge regression
 # License: Simplified BSD
 
 import numpy as np
-import scipy.sparse as sp
-from scipy import linalg
-from scipy.sparse import linalg as sp_linalg
 
 from .base import LinearModel
 from ..utils.extmath import safe_sparse_dot
@@ -85,6 +82,7 @@ class Ridge(LinearModel):
         X, y, Xmean, ymean = \
            LinearModel._center_data(X, y, self.fit_intercept)
 
+        import scipy.sparse as sp
         if sp.issparse(X):
             self._solve_sparse(X, y, sample_weight)
         else:
@@ -116,6 +114,7 @@ class Ridge(LinearModel):
     def _solve_sparse(self, X, y, sample_weight):
         n_samples, n_features = X.shape
 
+        import scipy.sparse as sp
         if n_features > n_samples or \
            isinstance(sample_weight, np.ndarray) or \
            sample_weight != 1.0:
@@ -132,14 +131,17 @@ class Ridge(LinearModel):
     def _solve(self, A, b):
         if self.solver == "cg":
             # this solver cannot handle a 2-d b.
+            from scipy.sparse import linalg as sp_linalg
             sol, error = sp_linalg.cg(A, b)
             if error:
                 raise ValueError("Failed with error code %d" % error)
             return sol
         else:
+            import scipy.sparse as sp
             # we are working with dense symmetric positive A
             if sp.issparse(A):
                 A = A.todense()
+            from scipy import linalg
             return linalg.solve(A, b, sym_pos=True, overwrite_a=True)
 
 
@@ -255,6 +257,7 @@ class _RidgeGCV(LinearModel):
     def _pre_compute(self, X, y):
         # even if X is very sparse, K is usually very dense
         K = safe_sparse_dot(X, X.T, dense_output=True)
+        from scipy import linalg
         v, Q = linalg.eigh(K)
         return K, v, Q