diff --git a/framework/src/main/java/org/apache/felix/framework/capabilityset/CapabilitySet.java b/framework/src/main/java/org/apache/felix/framework/capabilityset/CapabilitySet.java
index 04edb93..466af81 100644
--- a/framework/src/main/java/org/apache/felix/framework/capabilityset/CapabilitySet.java
+++ b/framework/src/main/java/org/apache/felix/framework/capabilityset/CapabilitySet.java
@@ -331,6 +331,13 @@
 
     private static boolean compare(Object lhs, Object rhsUnknown, int op)
     {
+        // If this is a PRESENT operation, then just return true immediately
+        // since we wouldn't be here if the attribute wasn't present.
+        if (op == SimpleFilter.PRESENT)
+        {
+            return true;
+        }
+
         // If the type is comparable, then we can just return the
         // result immediately.
         if (lhs instanceof Comparable)
diff --git a/framework/src/main/java/org/apache/felix/framework/capabilityset/SimpleFilter.java b/framework/src/main/java/org/apache/felix/framework/capabilityset/SimpleFilter.java
index f213b5f..42205e9 100644
--- a/framework/src/main/java/org/apache/felix/framework/capabilityset/SimpleFilter.java
+++ b/framework/src/main/java/org/apache/felix/framework/capabilityset/SimpleFilter.java
@@ -32,6 +32,7 @@
 // TODO: FELIX3 - Should we handle substring as a separate operator or as a
 //       special case of string equality comparison?
     public static final int SUBSTRING = 7;
+    public static final int PRESENT = 8;
 
     private final String m_name;
     private final Object m_value;
@@ -85,6 +86,9 @@
             case SUBSTRING:
                 s = "(" + m_name + "=" + unparseSubstring((List<String>) m_value) + ")";
                 break;
+            case PRESENT:
+                s = "(" + m_name + "=*)";
+                break;
         }
         return s;
     }
@@ -329,11 +333,17 @@
         Object value = sb.toString();
 
         // Check if the equality comparison is actually a substring
-        // comparison.
+        // or present operation.
         if (op == EQ)
         {
             List<String> values = parseSubstring((String) value);
-            if (values.size() > 1)
+            if ((values.size() == 2)
+                && (values.get(0).length() == 0)
+                && (values.get(1).length() == 0))
+            {
+                op = PRESENT;
+            }
+            else if (values.size() > 1)
             {
                 op = SUBSTRING;
                 value = values;
