diff --git a/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/Service.java b/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/Service.java
index 29c7a10..473e240 100644
--- a/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/Service.java
+++ b/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/Service.java
@@ -136,7 +136,7 @@
     /**
      * Sets list of provided interfaces. By default, the directly implemented interfaces are provided.
      */
-    Class<?>[] provide() default {};
+    Class<?>[] provides() default {};
 
     /**
      * Sets list of provided service properties.
diff --git a/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/AnnotationCollector.java b/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/AnnotationCollector.java
index 689e922..c1814e8 100644
--- a/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/AnnotationCollector.java
+++ b/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/AnnotationCollector.java
@@ -263,8 +263,8 @@
         // properties attribute
         parseProperties(annotation, EntryParam.properties, writer);
 
-        // provide attribute
-        writer.putClassArray(annotation, EntryParam.provide, m_interfaces);
+        // provides attribute
+        writer.putClassArray(annotation, EntryParam.provides, m_interfaces);
 
         // factorySet attribute
         writer.putString(annotation, EntryParam.factorySet, null);
diff --git a/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/EntryParam.java b/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/EntryParam.java
index 12a5cec..5c3679b 100644
--- a/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/EntryParam.java
+++ b/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/EntryParam.java
@@ -10,7 +10,7 @@
     stop, 
     destroy, 
     impl, 
-    provide, 
+    provides, 
     properties, 
     composition, 
     service, 
diff --git a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/FactorySet.java b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/FactorySet.java
index cb54c1f..7c77893 100644
--- a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/FactorySet.java
+++ b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/FactorySet.java
@@ -149,13 +149,13 @@
      * @param b the bundle containing the Service annotated with the factory attribute
      * @param impl The Service implementation class
      * @param serviceProperties The Service properties
-     * @param provide The Services provided by this Service
+     * @param provides The Services provided by this Service
      * @param factoryConfigure The configure callback invoked in order to pass configurations added in this Set.
      */
     public FactorySet(Bundle b, MetaData srvMeta, List<MetaData> depsMeta)
     {
         m_serviceProperties = srvMeta.getDictionary(Params.properties, null);
-        m_provide = srvMeta.getStrings(Params.provide, null);
+        m_provide = srvMeta.getStrings(Params.provides, null);
         m_configure = srvMeta.getString(Params.factoryConfigure, null);
         m_bundle = b;
         m_srvMeta = srvMeta;
diff --git a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/Params.java b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/Params.java
index afaca7e..1f6e8f3 100644
--- a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/Params.java
+++ b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/Params.java
@@ -29,7 +29,7 @@
     stop,
     destroy,
     impl,
-    provide,
+    provides,
     properties,
     composition,
     service,
diff --git a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceBuilder.java b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceBuilder.java
index f0c9891..aae44da 100644
--- a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceBuilder.java
+++ b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceBuilder.java
@@ -73,7 +73,7 @@
             
             // Set the provided services
             Dictionary<String, Object> properties = srvMeta.getDictionary(Params.properties, null);
-            String[] services = srvMeta.getStrings(Params.provide, null);
+            String[] services = srvMeta.getStrings(Params.provides, null);
             String publisherField = srvMeta.getString(Params.publisher, null);
             String unpublisherField = srvMeta.getString(Params.unpublisher, null);
             if (publisherField == null) 
diff --git a/dependencymanager/test/src/main/java/org/apache/felix/dm/test/bundle/annotation/multiple/ServiceProvider2.java b/dependencymanager/test/src/main/java/org/apache/felix/dm/test/bundle/annotation/multiple/ServiceProvider2.java
index 913326f..639c9a5 100644
--- a/dependencymanager/test/src/main/java/org/apache/felix/dm/test/bundle/annotation/multiple/ServiceProvider2.java
+++ b/dependencymanager/test/src/main/java/org/apache/felix/dm/test/bundle/annotation/multiple/ServiceProvider2.java
@@ -25,7 +25,7 @@
 import org.apache.felix.dm.annotation.api.ServiceDependency;
 import org.apache.felix.dm.test.bundle.annotation.sequencer.Sequencer;
 
-@Service(provide = { ServiceProvider2.class }, factoryMethod="create")
+@Service(provides = { ServiceProvider2.class }, factoryMethod="create")
 public class ServiceProvider2
 {
     Composite m_composite = new Composite();
diff --git a/dependencymanager/test/src/main/java/org/apache/felix/dm/test/bundle/annotation/temporal/TemporalTest.java b/dependencymanager/test/src/main/java/org/apache/felix/dm/test/bundle/annotation/temporal/TemporalTest.java
index 1ff2d03..5d56066 100644
--- a/dependencymanager/test/src/main/java/org/apache/felix/dm/test/bundle/annotation/temporal/TemporalTest.java
+++ b/dependencymanager/test/src/main/java/org/apache/felix/dm/test/bundle/annotation/temporal/TemporalTest.java
@@ -27,7 +27,7 @@
 /**
  * Service using an annotated Temporal Service dependendency.
  */
-@Service(provide = {})
+@Service(provides = {})
 public class TemporalTest implements Runnable
 {
     Thread m_thread;
