diff --git a/django/views/decorators/http.py b/django/views/decorators/http.py
index b763d6e..26b7f05 100644
--- a/django/views/decorators/http.py
+++ b/django/views/decorators/http.py
@@ -11,6 +11,7 @@ from calendar import timegm
 from datetime import timedelta
 from email.Utils import formatdate

+from django.conf import settings
 from django.utils.decorators import decorator_from_middleware, available_attrs
 from django.utils.http import parse_etags, quote_etag
 from django.utils.log import getLogger
@@ -113,7 +114,8 @@ def condition(etag_func=None, last_modified_func=None):
                     (if_match and if_none_match)):
                 # We only get here if no undefined combinations of headers are
                 # specified.
-                if ((if_none_match and (res_etag in etags or
+                if ((settings.USE_ETAGS and not etag_func) or
+                        (if_none_match and (res_etag in etags or
                         "*" in etags and res_etag)) and
                         (not if_modified_since or
                             res_last_modified == if_modified_since)):

