Index: apps/settings.c
===================================================================
--- apps/settings.c	(revision 13069)
+++ apps/settings.c	(working copy)
@@ -681,6 +681,10 @@
 
     audio_set_buffer_margin(global_settings.buffer_margin);
 
+#ifdef HAVE_SCROLL_WHEEL
+    scroll_wheel_set_sensitivity(global_settings.scroll_wheel_sensitivity);
+#endif    
+
 #ifdef HAVE_LCD_CONTRAST
     lcd_set_contrast(global_settings.contrast);
 #endif
Index: apps/lang/deutsch.lang
===================================================================
--- apps/lang/deutsch.lang	(revision 13069)
+++ apps/lang/deutsch.lang	(working copy)
@@ -3551,6 +3551,20 @@
   </voice>
 </phrase>
 <phrase>
+  id: LANG_SCROLL_WHEEL_SENSITIVITY
+  desc: in settings menu
+  user:
+  <source>
+    *: "Scroll Rad Empfindlichkeit"
+  </source>
+  <dest>
+    *: "Scroll Rad Empfindlichkeit"
+  </dest>
+  <voice>
+    *: "Scroll Rad Empfindlichkeit"
+  </voice>
+</phrase>
+<phrase>
   id: LANG_VOLUME_DISPLAY
   desc: Volume type title
   user:
Index: apps/lang/english.lang
===================================================================
--- apps/lang/english.lang	(revision 13069)
+++ apps/lang/english.lang	(working copy)
@@ -3587,6 +3587,20 @@
   </voice>
 </phrase>
 <phrase>
+  id: LANG_SCROLL_WHEEL_SENSITIVITY
+  desc: in settings menu
+  user:
+  <source>
+    *: "Scroll wheel sensitivity"
+  </source>
+  <dest>
+    *: "Scroll wheel sensitivity"
+  </dest>
+  <voice>
+    *: "Scroll wheel sensitivity"
+  </voice>
+</phrase>
+<phrase>
   id: LANG_VOLUME_DISPLAY
   desc: Volume type title
   user:
Index: apps/settings.h
===================================================================
--- apps/settings.h	(revision 13069)
+++ apps/settings.h	(working copy)
@@ -707,6 +707,9 @@
     int alarm_wake_up_screen;
 #endif
 
+#if defined(HAVE_SCROLL_WHEEL)
+    int scroll_wheel_sensitivity;  /* 1=low ...  3=high */
+#endif
 };
 
 /** global variables **/
Index: apps/menus/settings_menu.c
===================================================================
--- apps/menus/settings_menu.c	(revision 13069)
+++ apps/menus/settings_menu.c	(working copy)
@@ -317,6 +317,9 @@
 #if CONFIG_CHARGING
 MENUITEM_SETTING(car_adapter_mode, &global_settings.car_adapter_mode, NULL);
 #endif
+#ifdef HAVE_SCROLL_WHEEL
+MENUITEM_SETTING(scroll_wheel_sensitivity, &global_settings.scroll_wheel_sensitivity, NULL);
+#endif
 MENUITEM_SETTING(start_screen, &global_settings.start_in_screen, NULL);
 
 MAKE_MENU(system_menu, ID2P(LANG_SYSTEM), 
@@ -345,6 +348,9 @@
 #if CONFIG_CHARGING
             &car_adapter_mode,
 #endif
+#ifdef HAVE_SCROLL_WHEEL
+          &scroll_wheel_sensitivity,
+#endif
          );
 
 /*    SYSTEM MENU                  */
Index: apps/settings_list.c
===================================================================
--- apps/settings_list.c	(revision 13069)
+++ apps/settings_list.c	(working copy)
@@ -430,6 +430,12 @@
 #if CONFIG_KEYPAD == RECORDER_PAD
     OFFON_SETTING(0,buttonbar, LANG_BUTTON_BAR ,true,"buttonbar", NULL),
 #endif
+
+#ifdef HAVE_SCROLL_WHEEL
+    INT_SETTING(0, scroll_wheel_sensitivity, LANG_SCROLL_WHEEL_SENSITIVITY, 2, "scroll wheel sensitivity", 
+                UNIT_INT, 1, 3, 1, NULL, NULL, scroll_wheel_set_sensitivity),
+#endif
+
     CHOICE_SETTING(0, volume_type, LANG_VOLUME_DISPLAY, 0,
         "volume display", graphic_numeric, NULL, 2,
         ID2P(LANG_DISPLAY_GRAPHIC), ID2P(LANG_DISPLAY_NUMERIC)),
Index: firmware/export/button.h
===================================================================
--- firmware/export/button.h	(revision 13069)
+++ firmware/export/button.h	(working copy)
@@ -47,6 +47,9 @@
 int wheel_status(void);
 void wheel_send_events(bool send);
 #endif
+#ifdef HAVE_SCROLL_WHEEL
+void scroll_wheel_set_sensitivity(int value);
+#endif
 
 #define BUTTON_NONE    0x00000000
 
Index: firmware/export/config-e200.h
===================================================================
--- firmware/export/config-e200.h	(revision 13069)
+++ firmware/export/config-e200.h	(working copy)
@@ -38,6 +38,8 @@
 
 #define CONFIG_KEYPAD SANSA_E200_PAD
 
+#define HAVE_SCROLL_WHEEL
+
 /* Define this if you do software codec */
 #define CONFIG_CODEC SWCODEC
 /* There is no hardware tone control */
Index: firmware/target/arm/sandisk/sansa-e200/button-e200.c
===================================================================
--- firmware/target/arm/sandisk/sansa-e200/button-e200.c	(revision 13069)
+++ firmware/target/arm/sandisk/sansa-e200/button-e200.c	(working copy)
@@ -30,11 +30,18 @@
 
 static unsigned int old_wheel_value = 0;
 static unsigned int wheel_repeat = BUTTON_NONE;
+static unsigned int wheel_sensitivity = 0;
 
 /* Wheel backlight control */
 #define WHEEL_BACKLIGHT_TIMEOUT 5*HZ;
 static unsigned int wheel_backlight_timer;
 
+
+void scroll_wheel_set_sensitivity(int val)
+{
+    wheel_sensitivity = val;
+}
+
 void wheel_backlight_on(bool enable)
 {
     if(enable)
@@ -119,22 +126,28 @@
                 btn |= BUTTON_SCROLL_DOWN;
             break;
         case 0x40:
-            if(old_wheel_value==0x00)
-                btn |= BUTTON_SCROLL_UP;
-            else if (old_wheel_value==0xc0)
-                btn |= BUTTON_SCROLL_DOWN;
+            if(wheel_sensitivity > 2){
+                if(old_wheel_value==0x00)
+                    btn |= BUTTON_SCROLL_UP;
+                else if (old_wheel_value==0xc0)
+                    btn |= BUTTON_SCROLL_DOWN;
+            }
             break;
         case 0x80:
-            if(old_wheel_value==0xc0)
-                btn |= BUTTON_SCROLL_UP;
-            else if (old_wheel_value==0x00)
-                btn |= BUTTON_SCROLL_DOWN;
+            if(wheel_sensitivity > 2){
+                if(old_wheel_value==0xc0)
+                    btn |= BUTTON_SCROLL_UP;
+                else if (old_wheel_value==0x00)
+                    btn |= BUTTON_SCROLL_DOWN;
+            }
             break;
         case 0xc0:
-            if(old_wheel_value==0x40)
-                btn |= BUTTON_SCROLL_UP;
-            else if (old_wheel_value==0x80)
-                btn |= BUTTON_SCROLL_DOWN;
+            if(wheel_sensitivity > 1){
+                if(old_wheel_value==0x40)
+                    btn |= BUTTON_SCROLL_UP;
+                else if (old_wheel_value==0x80)
+                    btn |= BUTTON_SCROLL_DOWN;
+            }
             break;
         }
         
