Index: Conditions.java
===================================================================
--- Conditions.java	(revision 2246)
+++ Conditions.java	(working copy)
@@ -111,10 +111,11 @@
         if (this.match != null && !this.match.isEmpty()) {
             boolean matched = false;
             boolean failed = false;
+            boolean all = getMatch().get(0).equals(Tag.ALL);
 
             if (representation != null) {
                 // If a tag exists
-                if (representation.getTag() != null) {
+                if (!all && representation.getTag() != null) {
                     // Check if it matches one of the representations already
                     // cached by the client
                     Tag tag;
@@ -123,6 +124,8 @@
                         tag = iter.next();
                         matched = tag.equals(representation.getTag(), false);
                     }
+                } else {
+                    matched = all;
                 }
             } else {
                 // see
@@ -130,7 +133,7 @@
                 // If none of the entity tags match, or if "*" is given and no
                 // current entity exists, the server MUST NOT perform the
                 // requested method
-                failed = getMatch().get(0).equals(Tag.ALL);
+                failed = all;
             }
             failed = failed || !matched;
             if (failed) {
