diff --git a/mysys/my_aes.c b/mysys/my_aes.c
index b67166f8367555b50da7dc05aa286eb05e36072a..10ef62ae0a504d921c98c7ef0f5cfc57db34d5a6 100644
--- a/mysys/my_aes.c
+++ b/mysys/my_aes.c
@@ -74,6 +74,32 @@ static int my_aes_create_key(KEYINSTANCE *aes_key,
       ptr= rkey;  /*  Just loop over tmp_key until we used all key */
     *ptr^= *sptr;
   }
+#ifdef AES_USE_KEY_BITS
+  /*
+   This block is intended to allow more weak encryption if application 
+   build with libmysqld needs to correspond to export regulations
+   It should be never used in normal distribution as does not give 
+   any speed improvement.
+   To get worse security define AES_USE_KEY_BITS to number of bits
+   you want key to be. It should be divisible by 8
+   
+   WARNING: Changing this value results in changing of enryption for 
+   all key lengths  so altering this value will result in impossibility
+   to decrypt data encrypted with previous value       
+  */
+#define AES_USE_KEY_BYTES (AES_USE_KEY_BITS/8)
+  /*
+   To get weaker key we use first AES_USE_KEY_BYTES bytes of created key 
+   and cyclically copy them until we created all required key length
+  */  
+  for (ptr= rkey+AES_USE_KEY_BYTES, sptr=rkey ; ptr < rkey_end; 
+       ptr++,sptr++)
+  {
+    if (sptr == rkey+AES_USE_KEY_BYTES)
+      sptr=rkey;
+    *ptr=*sptr;   
+  }      
+#endif
   if (direction == AES_DECRYPT)
      aes_key->nr = rijndaelKeySetupDec(aes_key->rk, rkey, AES_KEY_LENGTH);
   else