diff --git a/modules/features2d/src/features2d_init.cpp b/modules/features2d/src/features2d_init.cpp
index c54506667d..72db8d1091 100644
--- a/modules/features2d/src/features2d_init.cpp
+++ b/modules/features2d/src/features2d_init.cpp
@@ -156,6 +156,7 @@ bool cv::initModule_features2d(void)
     all &= !FastFeatureDetector_info_auto.name().empty();
     all &= !StarDetector_info_auto.name().empty();
     all &= !MSER_info_auto.name().empty();
+    all &= !FREAK_info_auto.name().empty();
     all &= !ORB_info_auto.name().empty();
     all &= !GFTTDetector_info_auto.name().empty();
     all &= !HarrisDetector_info_auto.name().empty();
diff --git a/modules/features2d/src/freak.cpp b/modules/features2d/src/freak.cpp
index 8f26720b21..f5ef837f96 100644
--- a/modules/features2d/src/freak.cpp
+++ b/modules/features2d/src/freak.cpp
@@ -584,7 +584,7 @@ void FREAKImpl::drawPattern()
 FREAK::FREAK( bool _orientationNormalized, bool _scaleNormalized
             , float _patternScale, int _nOctaves, const std::vector<int>& _selectedPairs )
     : orientationNormalized(_orientationNormalized), scaleNormalized(_scaleNormalized),
-    patternScale(_patternScale), nOctaves(_nOctaves), selectedPairs0(_selectedPairs)
+    patternScale(_patternScale), nOctaves(_nOctaves), extAll(false), nOctaves0(0), selectedPairs0(_selectedPairs)
 {
 }
 
diff --git a/samples/cpp/freak_demo.cpp b/samples/cpp/freak_demo.cpp
index bbadb86219..60778fd4e2 100644
--- a/samples/cpp/freak_demo.cpp
+++ b/samples/cpp/freak_demo.cpp
@@ -46,7 +46,7 @@
 
 using namespace cv;
 
-void help( char** argv )
+static void help( char** argv )
 {
     std::cout << "\nUsage: " << argv[0] << " [path/to/image1] [path/to/image2] \n"
               << "This is an example on how to use the keypoint descriptor presented in the following paper: \n"