diff --git a/CHANGES.txt b/CHANGES.txt
index 88efe57..c55f718 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -11,7 +11,7 @@
 * OODT-1006 Add Dockerfile for OODT deployment
 
 =======
-Release 1.9.1 - In Progress
+Release 1.9.1 - 25/09/2021
 
 * OODT-1031 OODT 1.9 should default to XMLRpc versions of FM/RESMGR/WMGR instead of Avro versions
 
diff --git a/KEYS b/KEYS
index 0f58724..f427277 100644
--- a/KEYS
+++ b/KEYS
@@ -470,3 +470,52 @@
 B2neAnVWblqf/MiKPBtwvgAxwrDpC9ubkHXE7V+O83UD9R0=
 =OEFF
 -----END PGP PUBLIC KEY BLOCK-----
+
+pub   rsa3072 2021-09-25 [SC] [expires: 2023-09-25]
+      986B 692A 1351 6FFE 88FF  0914 5D95 DC06 02DB BCC7
+uid           [ultimate] Imesha Sudasingha <imesha@apache.org>
+sig 3        5D95DC0602DBBCC7 2021-09-25  Imesha Sudasingha <imesha@apache.org>
+sub   rsa3072 2021-09-25 [E] [expires: 2023-09-25]
+sig          5D95DC0602DBBCC7 2021-09-25  Imesha Sudasingha <imesha@apache.org>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=2IRu
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/mvn/archetypes/radix/src/main/resources/bin/radix b/mvn/archetypes/radix/src/main/resources/bin/radix
index c241ddf..a662f9e 100755
--- a/mvn/archetypes/radix/src/main/resources/bin/radix
+++ b/mvn/archetypes/radix/src/main/resources/bin/radix
@@ -16,8 +16,8 @@
 mvn archetype:generate \
     -DarchetypeGroupId=org.apache.oodt \
     -DarchetypeArtifactId=radix-archetype \
-    -DarchetypeVersion=1.9 \
-    -Doodt=1.9 \
+    -DarchetypeVersion=1.9.1 \
+    -Doodt=1.9.1 \
     -DgroupId=com.mycompany \
-    -DartifactId=radix-build \
+    -DartifactId=oodt \
     -Dversion=1.0-SNAPSHOT
diff --git a/workflow/src/test/java/org/apache/oodt/cas/workflow/system/TestAvroRpcWorkflowManager.java b/workflow/src/test/java/org/apache/oodt/cas/workflow/system/TestAvroRpcWorkflowManager.java
index b09c50e..b01ac7b 100644
--- a/workflow/src/test/java/org/apache/oodt/cas/workflow/system/TestAvroRpcWorkflowManager.java
+++ b/workflow/src/test/java/org/apache/oodt/cas/workflow/system/TestAvroRpcWorkflowManager.java
@@ -51,7 +51,8 @@
      * number of workflow instances are 2 when asserting.
      */
     @Test
-    public void testGetWorkflowInstances() {
+    public void testGetWorkflowInstances() throws InterruptedException {
+        Thread.sleep(5000);
 
         Vector workflowInsts = null;
 
@@ -87,7 +88,7 @@
                      new AvroRpcWorkflowManagerClient(new URL("http://localhost:" + WM_PORT))) {
             Metadata metadata = new Metadata();
             // Hold the task for 20 seconds at least            
-            metadata.addMetadata("numSeconds", String.valueOf(20));
+            metadata.addMetadata("numSeconds", String.valueOf(30));
             client.sendEvent("long", metadata);
         } catch (Exception e) {
             fail(e.getMessage());
