diff --git a/modules/gui/src/remote_loader.cc b/modules/gui/src/remote_loader.cc
index 60ae7c60aec99da21148b038df11a912ae74aeb7..cb5ac4f68ab3023e6dbae88af1badaa2012632c3 100644
--- a/modules/gui/src/remote_loader.cc
+++ b/modules/gui/src/remote_loader.cc
@@ -18,6 +18,7 @@
 //------------------------------------------------------------------------------
 #include <vector>
 
+#include <QSettings>
 #include <QNetworkReply>
 #include <QHBoxLayout>
 #include <QDir>
@@ -79,11 +80,13 @@ void RemoteLoader::UrlClick()
   site_loader_menu_->exec(QCursor::pos());
 }
 
-void RemoteLoader::BuildMenu()
+void RemoteLoader::BuildMenu(String active_loader)
 {
-  String selected_site_loader;
-  if(site_actions_->checkedAction()!=NULL){
-    selected_site_loader=site_actions_->checkedAction()->text().toStdString();
+  if(active_loader.size()>0){
+    selected_site_loader_ = active_loader;
+  }
+  else if(site_actions_->checkedAction()!=NULL){
+    selected_site_loader_=site_actions_->checkedAction()->text().toStdString();
   }
   site_loader_menu_->clear();
   QList<QAction*> actions = site_actions_->actions();
@@ -98,7 +101,7 @@ void RemoteLoader::BuildMenu()
       QAction* action = new QAction(loader_ident,site_loader_menu_);
       action->setCheckable(true);
       site_actions_->addAction(action);
-      if(site_actions_->checkedAction()==NULL ||selected_site_loader==loader_ident.toStdString() ){
+      if(site_actions_->checkedAction()==NULL ||selected_site_loader_==loader_ident.toStdString() ){
         action->setChecked(true);
       }
       site_loader_menu_->addAction(action);
@@ -113,11 +116,21 @@ ActionList RemoteLoader::GetActions()
 
 bool RemoteLoader::Save(const QString& prefix)
 {
+  this->BuildMenu();
+  QSettings settings;
+  settings.beginGroup(prefix);
+  settings.setValue("loader", site_actions_->checkedAction()->text());
+  settings.endGroup();
   return true;
 }
 
 bool RemoteLoader::Restore(const QString& prefix)
 {
+  QSettings settings;
+  settings.beginGroup(prefix);
+  if (settings.contains("loader")) {
+    this->BuildMenu(settings.value("loader").toString().toStdString());
+  }
   return true;
 }
 
diff --git a/modules/gui/src/remote_loader.hh b/modules/gui/src/remote_loader.hh
index b4f562f84819c166cb862e3f864197961e716b2a..441309eee1f70c8db7d6583a77eae552ae8acd25 100644
--- a/modules/gui/src/remote_loader.hh
+++ b/modules/gui/src/remote_loader.hh
@@ -47,7 +47,7 @@ protected:
   virtual void keyPressEvent(QKeyEvent* event);
 private:
   void ShowProgressBar(bool visiblility);
-  void BuildMenu();
+  void BuildMenu(String active_loader=String());
 private slots:
   void Clicked();
   void UrlClick();
@@ -61,6 +61,7 @@ private:
   ActionList action_list_;
   QMenu* site_loader_menu_;
   QActionGroup* site_actions_;
+  String selected_site_loader_;
   bool img_support_;
 };