diff --git a/sklearn/linear_model/omp.py b/sklearn/linear_model/omp.py
index cb3a3c7831bf5d0cb0a3c35b07b543936e4ba96c..b0fb3efb029f6846b3bfb343f43476e8b0af6c2a 100644
--- a/sklearn/linear_model/omp.py
+++ b/sklearn/linear_model/omp.py
@@ -63,6 +63,7 @@ def _cholesky_omp(X, y, n_nonzero_coefs, tol=None, copy_X=True):
 
     alpha = np.dot(X.T, y)
     residual = y
+    gamma = np.empty(0)
     n_active = 0
     indices = range(X.shape[1])  # keeping track of swapping
 
@@ -157,6 +158,7 @@ def _gram_omp(Gram, Xy, n_nonzero_coefs, tol_0=None, tol=None,
     alpha = Xy
     tol_curr = tol_0
     delta = 0
+    gamma = np.empty(0)
     n_active = 0
 
     max_features = len(Gram) if tol is not None else n_nonzero_coefs
diff --git a/sklearn/linear_model/tests/test_omp.py b/sklearn/linear_model/tests/test_omp.py
index f52486d4279f7081182f46587afd150ce6a2b04e..11e07b32530dddceb79825b98e1586b3dd6e3996 100644
--- a/sklearn/linear_model/tests/test_omp.py
+++ b/sklearn/linear_model/tests/test_omp.py
@@ -154,3 +154,12 @@ def test_swapped_regressors():
     gamma_hat_gram = orthogonal_mp_gram(G, new_Xy, 2)
     assert_equal(np.flatnonzero(gamma_hat), [0, 21])
     assert_equal(np.flatnonzero(gamma_hat_gram), [0, 21])
+
+
+def test_no_atoms():
+    y_empty = np.zeros_like(y)
+    Xy_empty = np.dot(X.T, y_empty)
+    gamma_empty = orthogonal_mp(X, y_empty, 1)
+    gamma_empty_gram = orthogonal_mp_gram(G, Xy_empty, 1)
+    assert_equal(np.all(gamma_empty == 0), True)
+    assert_equal(np.all(gamma_empty_gram == 0), True)