diff --git a/wb/exe/wb/gtk/wb_gtk.cpp b/wb/exe/wb/gtk/wb_gtk.cpp
index 91278385344e0e3eeb7a2c2525ed43de19e72e6a..07f8b379a562858657deac4239a9f7c4cbbbf45b 100644
--- a/wb/exe/wb/gtk/wb_gtk.cpp
+++ b/wb/exe/wb/gtk/wb_gtk.cpp
@@ -107,6 +107,10 @@ WVsel *WbGtk::vsel_new( pwr_tStatus *status, const char *name, ldh_tWBContext ld
 
 int main( int argc, char *argv[])
 {
+  if ( argc >= 2 && strcmp( argv[1], "-m") == 0) {
+    wb_erep::printMethods();
+    exit(0);
+  }
 
   gtk_init( &argc, &argv);
 
diff --git a/wb/lib/wb/src/wb_erep.h b/wb/lib/wb/src/wb_erep.h
index 2567f46249e111664bac29aa56c7a524bf21b6f9..687fd19f854522e8a46919a712afc3a08efabd64 100644
--- a/wb/lib/wb/src/wb_erep.h
+++ b/wb/lib/wb/src/wb_erep.h
@@ -132,9 +132,9 @@ public:
   void setRefMerep( wb_merep *merep);
   void resetRefMerep();
   bool refMerepOccupied() { return m_ref_merep_occupied;}
-  void printMethods();
   bool check_lock( char *name, ldh_eVolDb type);
   void checkVolumes( pwr_tStatus *sts, char *nodeconfigname);
+  static void printMethods();
   static void volumeNameToFilename( pwr_tStatus *sts, char *name, char *filename);
 
 private:
diff --git a/wb/lib/wb/src/wb_wnav_command.cpp b/wb/lib/wb/src/wb_wnav_command.cpp
index 47344265b78d6b5b543b6a8f4c18eee04b516a2a..b6ff2fe341a3dc21afe2a941be949242e7211f79 100644
--- a/wb/lib/wb/src/wb_wnav_command.cpp
+++ b/wb/lib/wb/src/wb_wnav_command.cpp
@@ -2142,8 +2142,7 @@ static int	wnav_show_func(	void		*client_data,
   else if ( cdh_NoCaseStrncmp( arg1_str, "METHODS", strlen( arg1_str)) == 0)
   {
     // Command is "SHOW METHODS"
-    wb_erep *erep = *(wb_env *)wnav->wbctx;
-    erep->printMethods();
+    wb_erep::printMethods();
   }
   else if ( cdh_NoCaseStrncmp( arg1_str, "NEXT_FREE_USER_VID", strlen( arg1_str)) == 0)
   {
diff --git a/xtt/exe/rt_xtt/src/xtt_main.cpp b/xtt/exe/rt_xtt/src/xtt_main.cpp
index 40e8ba8041a75333cb0762337bbffc72bf1f5c9f..aac91ffc314949476fae934fbca9a1f6c5ac5e67 100644
--- a/xtt/exe/rt_xtt/src/xtt_main.cpp
+++ b/xtt/exe/rt_xtt/src/xtt_main.cpp
@@ -561,6 +561,11 @@ Xtt::Xtt( int *argc, char **argv[], int *return_sts) :
   static char 	display[80];
   static char   display_opt[20] = "--display";
 
+  if ( *argc > 1 && strcmp( (*argv)[1], "-m") == 0) {
+    XNav::print_methods();
+    exit(0);
+  }
+
   *return_sts = XNAV__SUCCESS;
 
   strcpy( opplace_str, "");
diff --git a/xtt/lib/xtt/src/xtt_xnav.h b/xtt/lib/xtt/src/xtt_xnav.h
index a67cc24037ff042655458ab51c188dc9f574f05f..dcfd3b4cf27bed16973e2f7331af14e7bb964bbf 100644
--- a/xtt/lib/xtt/src/xtt_xnav.h
+++ b/xtt/lib/xtt/src/xtt_xnav.h
@@ -571,9 +571,9 @@ class XNav {
     int search_next();
     int create_object( char *classname, char *name);
     int delete_object( char *name);
-    void print_methods();
     void open_keyboard( void *owner, keyboard_eKeymap keymap, int type);
     void close_keyboard( int action);
+    static void print_methods();
     static pwr_tStatus get_instance_classgraph( char *instance_str, pwr_tFileName filename);
 
     // Table module member functions