diff --git a/aderivation/src/aderivation.cpp b/aderivation/src/aderivation.cpp
index aafb5aeee090ca5281fc5b53357564b322b0a07f..27d31b2084799a943d7757d631a5e407f6d2e0bf 100644
--- a/aderivation/src/aderivation.cpp
+++ b/aderivation/src/aderivation.cpp
@@ -1,4 +1,6 @@
 #include <iostream>
+#include <cstring>
+
 
 #include <AlibException.h>
 #include <regexp/RegExp.h>
@@ -13,13 +15,24 @@ using namespace alib;
 using namespace regexp;
 using namespace std;
 
-/*
- * Usage:
- *  aderivative "a" "b" "cc" < regexp.xml
- */
+void help( void )
+{
+    cout << "aderivation 0.01" << endl;
+    cout << "Returns derivation of regexp over given string of symbols." << endl;
+    cout << "Usage: aintegral SYMBOL-1 SYMBOL-2 ... SYMBOL-n" << endl;
+}
 
 int main(int argc, char** argv)
 {
+    for( int i = 0; i < argc; i++ )
+    {
+        if( strcmp( argv[ i ], "--help" ) == 0 || strcmp( argv[ i ], "-h" ) == 0 )
+        {
+            help( );
+            return 0;
+        }
+    }
+
     try
     {
         list<Token> tokens;
diff --git a/aepsilon/src/aepsilon.fsm.cpp b/aepsilon/src/aepsilon.fsm.cpp
index dadd23e802cd6ac48c27bab835841de8dd8fcc2f..f4ab4bf8282f0f86bac2203c6ab0750157053d89 100644
--- a/aepsilon/src/aepsilon.fsm.cpp
+++ b/aepsilon/src/aepsilon.fsm.cpp
@@ -24,10 +24,11 @@ int main(int argc, char** argv) {
         {
             for( int i = 1; i < argc; i++ )
             {
-                if( string( "-h" ).compare( argv[i] ) == 0 )
+                if( string( "-h" ).compare( argv[i] ) == 0 || string( "--help").compare( argv[i] ) == 0 )
                 {
-                    std::cout << "Removes eps transitions from NFA." << std::endl;
-                    std::cout << "Usage: aepsilon [automaton.xml]" << std::endl;
+                    std::cout << "aepsilon." << std::endl;
+                    std::cout << "Removes epsilon transitions from NFA." << std::endl;
+                    std::cout << "Usage: aepsilon" << std::endl;
                     return 1;
                 }
                 else
diff --git a/aintegral/src/aintegral.cpp b/aintegral/src/aintegral.cpp
index cb6b62fd6c124c7d896d62cfc6a00ebeaccdeba6..45953f07502d01514720372a2b3d8649ca521e49 100644
--- a/aintegral/src/aintegral.cpp
+++ b/aintegral/src/aintegral.cpp
@@ -1,4 +1,5 @@
 #include <iostream>
+#include <cstring>
 
 #include <AlibException.h>
 #include <regexp/RegExp.h>
@@ -13,13 +14,26 @@ using namespace alib;
 using namespace regexp;
 using namespace std;
 
-/*
- * Usage:
- *  aintegral "a" "b" "cc" < regexp.xml
- */
+
+
+void help( void )
+{
+    cout << "aintegral 0.01" << endl;
+    cout << "Returns integral of regexp over given string of symbols." << endl;
+    cout << "Usage: aintegral SYMBOL-1 SYMBOL-2 ... SYMBOL-n" << endl;
+}
 
 int main(int argc, char** argv)
 {
+    for( int i = 0; i < argc; i++ )
+    {
+        if( strcmp( argv[ i ], "--help" ) == 0 || strcmp( argv[ i ], "-h" ) == 0 )
+        {
+            help( );
+            return 0;
+        }
+    }
+
     try
     {
         list<Token> tokens;