diff --git a/src/main/java/org/apache/directory/fortress/core/ldap/RelaxControl.java b/src/main/java/org/apache/directory/fortress/core/ldap/RelaxControl.java
index 96f33dc..b08c53c 100644
--- a/src/main/java/org/apache/directory/fortress/core/ldap/RelaxControl.java
+++ b/src/main/java/org/apache/directory/fortress/core/ldap/RelaxControl.java
@@ -24,7 +24,7 @@
 
 /**
  * The LDAP Relax Rules Control. It's defined in https://tools.ietf.org/html/draft-zeilenga-ldap-relax-03.
- * This control is sent with every update of pwdPolicySubEntry on user.
+ * This control is sent with every update of pwdPolicySubEntry, pwdAccountLockedTime and pwdReset on user entry.
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
diff --git a/src/main/java/org/apache/directory/fortress/core/ldap/RelaxControlDecorator.java b/src/main/java/org/apache/directory/fortress/core/ldap/RelaxControlDecorator.java
index 565cbc8..d6b2d23 100644
--- a/src/main/java/org/apache/directory/fortress/core/ldap/RelaxControlDecorator.java
+++ b/src/main/java/org/apache/directory/fortress/core/ldap/RelaxControlDecorator.java
@@ -1,6 +1,24 @@
+/*
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *   or more contributor license agreements.  See the NOTICE file
+ *   distributed with this work for additional information
+ *   regarding copyright ownership.  The ASF licenses this file
+ *   to you under the Apache License, Version 2.0 (the
+ *   "License"); you may not use this file except in compliance
+ *   with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing,
+ *   software distributed under the License is distributed on an
+ *   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *   KIND, either express or implied.  See the License for the
+ *   specific language governing permissions and limitations
+ *   under the License.
+ *
+ */
 package org.apache.directory.fortress.core.ldap;
 
-
 import org.apache.directory.api.asn1.Asn1Object;
 import org.apache.directory.api.asn1.DecoderException;
 import org.apache.directory.api.asn1.EncoderException;
@@ -9,7 +27,14 @@
 
 import java.nio.ByteBuffer;
 
-
+/**
+ * RelaxControl decorator.
+ *
+ * The LDAP Relax Rules Control. It's defined in https://tools.ietf.org/html/draft-zeilenga-ldap-relax-03.
+ * This control is sent with every update of pwdPolicySubEntry, pwdAccountLockedTime and pwdReset on user entry.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
 public class RelaxControlDecorator extends ControlDecorator<RelaxControl> implements RelaxControl
 {
     public RelaxControlDecorator(LdapApiService codec, RelaxControl control) {
diff --git a/src/main/java/org/apache/directory/fortress/core/ldap/RelaxControlImpl.java b/src/main/java/org/apache/directory/fortress/core/ldap/RelaxControlImpl.java
index 5e5f926..e4088fe 100644
--- a/src/main/java/org/apache/directory/fortress/core/ldap/RelaxControlImpl.java
+++ b/src/main/java/org/apache/directory/fortress/core/ldap/RelaxControlImpl.java
@@ -23,17 +23,19 @@
 
 /**
  * The LDAP Relax Rules Control. It's defined in https://tools.ietf.org/html/draft-zeilenga-ldap-relax-03.
- * This control is sent with every update of pwdPolicySubEntry on user.
+ * This control is sent with every update of pwdPolicySubEntry, pwdAccountLockedTime and pwdReset on user entry.
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class RelaxControlImpl extends AbstractControl implements RelaxControl {
+public class RelaxControlImpl extends AbstractControl implements RelaxControl
+{
     public RelaxControlImpl() {
-        super("1.3.6.1.4.1.4203.666.5.12");
+        super( OID );
     }
 
-    public RelaxControlImpl(boolean isCritical) {
-        super("1.3.6.1.4.1.4203.666.5.12");
+    public RelaxControlImpl(boolean isCritical)
+    {
+        super( OID );
         this.setCritical(isCritical);
     }
 }
