diff --git a/ipojo/annotations/src/main/java/org/apache/felix/ipojo/transaction/Transactionnal.java b/ipojo/annotations/src/main/java/org/apache/felix/ipojo/transaction/Transactional.java
similarity index 97%
rename from ipojo/annotations/src/main/java/org/apache/felix/ipojo/transaction/Transactionnal.java
rename to ipojo/annotations/src/main/java/org/apache/felix/ipojo/transaction/Transactional.java
index b2fe300..ba41f5e 100644
--- a/ipojo/annotations/src/main/java/org/apache/felix/ipojo/transaction/Transactionnal.java
+++ b/ipojo/annotations/src/main/java/org/apache/felix/ipojo/transaction/Transactional.java
@@ -29,7 +29,7 @@
  * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 @Target(ElementType.METHOD)
-public @interface Transactionnal {
+public @interface Transactional {
 
     /**
      * Sets the transaction timeout.
diff --git a/ipojo/handler/transaction/src/main/java/org/apache/felix/ipojo/transaction/TransactionHandler.java b/ipojo/handler/transaction/src/main/java/org/apache/felix/ipojo/transaction/TransactionHandler.java
index 31415d1..00d4171 100644
--- a/ipojo/handler/transaction/src/main/java/org/apache/felix/ipojo/transaction/TransactionHandler.java
+++ b/ipojo/handler/transaction/src/main/java/org/apache/felix/ipojo/transaction/TransactionHandler.java
@@ -32,7 +32,7 @@
 
     private static final String ONROLLBACK_ATTRIBUTE= "onrollback";
 
-    private static final String TRANSACTIONNAL_ELEMENT = "transactionnal";
+    private static final String TRANSACTIONAL_ELEMENT = "transactional";
 
     private static final String METHOD_ATTRIBUTE = "method";
 
@@ -90,9 +90,9 @@
         }
 
 
-        Element[] sub = elements[0].getElements(TRANSACTIONNAL_ELEMENT);
+        Element[] sub = elements[0].getElements(TRANSACTIONAL_ELEMENT);
         if (sub == null  || sub.length == 0) {
-            throw new ConfigurationException("The handler " + NAMESPACE + ":" + NAME + " must have " + TRANSACTIONNAL_ELEMENT + " subelement");
+            throw new ConfigurationException("The handler " + NAMESPACE + ":" + NAME + " must have " + TRANSACTIONAL_ELEMENT + " subelement");
         }
 
         for (int i = 0; i < sub.length; i++) {
diff --git a/ipojo/tests/handler/transaction/pom.xml b/ipojo/tests/handler/transaction/pom.xml
index 8dadf3a..ebb62ad 100644
--- a/ipojo/tests/handler/transaction/pom.xml
+++ b/ipojo/tests/handler/transaction/pom.xml
@@ -41,6 +41,7 @@
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo.annotations</artifactId>
+      <version>1.7.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
diff --git a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/component/ComponentUsingAnnotations.java b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/component/ComponentUsingAnnotations.java
index a516556..d2db5f1 100644
--- a/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/component/ComponentUsingAnnotations.java
+++ b/ipojo/tests/handler/transaction/src/test/java/org/apache/felix/ipojo/transaction/test/component/ComponentUsingAnnotations.java
@@ -11,21 +11,21 @@
     Transaction transaction;
 
 
-    @org.apache.felix.ipojo.transaction.Transactionnal
+    @org.apache.felix.ipojo.transaction.Transactional
     public void doSomethingBad() throws NullPointerException {
     }
 
-    @org.apache.felix.ipojo.transaction.Transactionnal(propagation="required")
+    @org.apache.felix.ipojo.transaction.Transactional(propagation="required")
     public void doSomethingBad2() throws UnsupportedOperationException {
 
     }
 
-    @org.apache.felix.ipojo.transaction.Transactionnal(propagation="supported", norollbackfor= {"java.lang.Exception"})
+    @org.apache.felix.ipojo.transaction.Transactional(propagation="supported", norollbackfor= {"java.lang.Exception"})
     public void doSomethingGood() {
 
     }
 
-    @org.apache.felix.ipojo.transaction.Transactionnal(timeout=1000, exceptiononrollback=true)
+    @org.apache.felix.ipojo.transaction.Transactional(timeout=1000, exceptiononrollback=true)
     public void doSomethingLong() {
 
     }
