diff --git a/Modules/Visualization/MonteverdiCore/include/mvdCore.h b/Modules/Visualization/MonteverdiCore/include/mvdCore.h
index e3c6c6c80d1cd01faa8ba0ce4bb1724d8b7fea8b..29561da2fbf742101692057d3028c99fdf9805b6 100644
--- a/Modules/Visualization/MonteverdiCore/include/mvdCore.h
+++ b/Modules/Visualization/MonteverdiCore/include/mvdCore.h
@@ -130,9 +130,9 @@ enum Effect
   EFFECT_LOCAL_CONTRAST,
   EFFECT_LOCAL_TRANSLUCENCY,
   EFFECT_NORMAL,
-  EFFECT_SPECTRAL_ANGLE,
   EFFECT_SWIPE_H,
   EFFECT_SWIPE_V,
+  EFFECT_SPECTRAL_ANGLE,
   EFFECT_LUT_JET,
   EFFECT_LUT_LOCAL_JET,
   EFFECT_LUT_HOT,
diff --git a/Modules/Visualization/MonteverdiCore/include/mvdVectorImageSettings.h b/Modules/Visualization/MonteverdiCore/include/mvdVectorImageSettings.h
index 8532f8a5705912ea2a9f70fbd52d65a630cd4753..478636b67fd5d2b86d8281d3a3bf5c010b26e404 100644
--- a/Modules/Visualization/MonteverdiCore/include/mvdVectorImageSettings.h
+++ b/Modules/Visualization/MonteverdiCore/include/mvdVectorImageSettings.h
@@ -550,6 +550,18 @@ VectorImageSettings
 {
   m_IsGrayscaleActivated = activated;
 
+  Effect effect = GetEffect();
+
+  if(activated
+     && effect == EFFECT_SPECTRAL_ANGLE)
+    {
+    SetEffect(EFFECT_NORMAL);
+    }
+  else if(!activated && effect >= EFFECT_LUT_LOCAL_JET)
+    {
+    SetEffect(EFFECT_NORMAL);
+    }
+  
   SetModified();
 }
 
diff --git a/Modules/Visualization/MonteverdiCore/src/mvdCore.cxx b/Modules/Visualization/MonteverdiCore/src/mvdCore.cxx
index 76285c17020533a72b059658ecb1a75c95dc54a8..4995497710d75655340e4877e14c59dd9a53a745 100644
--- a/Modules/Visualization/MonteverdiCore/src/mvdCore.cxx
+++ b/Modules/Visualization/MonteverdiCore/src/mvdCore.cxx
@@ -87,9 +87,9 @@ EFFECT_NAMES[ EFFECT_COUNT ] =
   QT_TRANSLATE_NOOP( "mvd", "Local contrast" ),
   QT_TRANSLATE_NOOP( "mvd", "Local translucency" ),
   QT_TRANSLATE_NOOP( "mvd", "Normal" ),
-  QT_TRANSLATE_NOOP( "mvd", "Spectral angle" ),
   QT_TRANSLATE_NOOP( "mvd", "Swipe (horizontal)" ),
   QT_TRANSLATE_NOOP( "mvd", "Swipe (vertical)" ),
+  QT_TRANSLATE_NOOP( "mvd", "Spectral angle" ),
   QT_TRANSLATE_NOOP( "mvd", "Lookup table (jet)" ),
   QT_TRANSLATE_NOOP( "mvd", "Local lookup table (jet)" ),
   QT_TRANSLATE_NOOP( "mvd", "Lookup table (hot)" ),
diff --git a/Modules/Visualization/MonteverdiGui/include/mvdShaderWidget.h b/Modules/Visualization/MonteverdiGui/include/mvdShaderWidget.h
index 640131d74f778634e382588aca138f7e91f9d1ef..aae6425508f82d3e0fb2e709c22264bc0f779f0d 100644
--- a/Modules/Visualization/MonteverdiGui/include/mvdShaderWidget.h
+++ b/Modules/Visualization/MonteverdiGui/include/mvdShaderWidget.h
@@ -23,7 +23,7 @@
 // Configuration include.
 //// Included at first position before any other ones.
 #include "ConfigureMonteverdi.h"
-
+#include "mvdImageSettings.h"
 
 /*****************************************************************************/
 /* INCLUDE SECTION                                                           */
@@ -114,6 +114,8 @@ public:
 // Public SLOTS.
 public slots:
 
+  void GrayscaleActivated(bool status);
+
   /*-[ SIGNALS SECTION ]-----------------------------------------------------*/
 
 //
@@ -137,6 +139,8 @@ protected:
 // Private methods.
 private:
 
+  void SetEffectVisible(const Effect & effect, bool visible);
+  
   /** */
   void virtual_SetSettings( ImageSettings * ) ITK_OVERRIDE;
 
diff --git a/Modules/Visualization/MonteverdiGui/src/mvdShaderWidget.cxx b/Modules/Visualization/MonteverdiGui/src/mvdShaderWidget.cxx
index f7bfd139e7c2fefa0c4e54d8b393725544082f8d..706c6670690c105ec40ebb99e6c47e26e9bd21c5 100644
--- a/Modules/Visualization/MonteverdiGui/src/mvdShaderWidget.cxx
+++ b/Modules/Visualization/MonteverdiGui/src/mvdShaderWidget.cxx
@@ -40,8 +40,8 @@
 //
 // Monteverdi includes (sorted by alphabetic order)
 #include "mvdAlgorithm.h"
-#include "mvdImageSettings.h"
 #include "mvdGui.h"
+#include "mvdVectorImageSettings.h"
 
 namespace mvd
 {
@@ -117,18 +117,24 @@ ShaderWidget
 void
 ShaderWidget
 ::SetGLSL140Enabled( bool isGLSLEnabled )
+{
+  SetEffectVisible(EFFECT_GRADIENT,isGLSLEnabled);
+}
+
+void ShaderWidget
+::SetEffectVisible(const Effect & effect, bool visible)
 {
   assert( qApp!=NULL );
 
   int index =
     m_UI->effectComboBox->findText(
-      qApp->translate( "mvd", EFFECT_NAMES[ EFFECT_GRADIENT ] )
+      qApp->translate( "mvd", EFFECT_NAMES[ effect ] )
     );
 
-  if( isGLSLEnabled )
+  if( visible )
     {
     if( index<0 )
-      m_UI->effectComboBox->addItem( tr( "mvd", EFFECT_NAMES[ EFFECT_GRADIENT ] ) );
+      m_UI->effectComboBox->addItem( qApp->translate( "mvd", EFFECT_NAMES[ effect ] ) );
     }
   else if( index>=0 )
     m_UI->effectComboBox->removeItem( index );
@@ -185,6 +191,14 @@ ShaderWidget
     );
     m_UI->valueLineEdit->setCursorPosition( 0 );
     }
+
+  VectorImageSettings * vis = dynamic_cast<VectorImageSettings*>(settings);
+
+  if(vis!=NULL)
+    {
+    GrayscaleActivated(vis->IsGrayscaleActivated());
+    }
+  
 }
 
 /*******************************************************************************/
@@ -275,4 +289,21 @@ ShaderWidget
   emit SettingsChanged();
 }
 
+
+void ShaderWidget
+::GrayscaleActivated(bool status)
+{  
+  SetEffectVisible(EFFECT_LUT_JET,status);
+  SetEffectVisible(EFFECT_LUT_LOCAL_JET,status);
+  SetEffectVisible(EFFECT_LUT_HOT,status);
+  SetEffectVisible(EFFECT_LUT_LOCAL_HOT,status);
+  SetEffectVisible(EFFECT_LUT_WINTER,status);
+  SetEffectVisible(EFFECT_LUT_LOCAL_WINTER,status);
+  SetEffectVisible(EFFECT_LUT_SUMMER,status);
+  SetEffectVisible(EFFECT_LUT_LOCAL_SUMMER,status);
+  SetEffectVisible(EFFECT_LUT_COOL,status);
+  SetEffectVisible(EFFECT_LUT_LOCAL_COOL,status);
+  SetEffectVisible(EFFECT_SPECTRAL_ANGLE,!status);
+}
+
 } // end namespace 'mvd'