diff --git a/src/xfpm-lcd-brightness.c b/src/xfpm-lcd-brightness.c
index b85a9964b9302e0f59113749f0e1be65e5852551..c1b2145c8ca8d97c201091ed841e1e5ce26fb051 100644
--- a/src/xfpm-lcd-brightness.c
+++ b/src/xfpm-lcd-brightness.c
@@ -374,9 +374,12 @@ xfpm_lcd_brightness_get_device(XfpmLcdBrightness *lcd)
             XFPM_DEBUG("error getting max brigthness level: %s\n",error->message);
             g_error_free(error);
             priv->brightness_in_hardware = TRUE; /* we always assume that control is in hardware */
-            _get_steps(lcd);
             return;
-        }                                    
+        }          
+        if ( !priv->brightness_in_hardware )
+        {
+            _get_steps(lcd);
+        }
     }
     
 }