diff --git a/Makefile.dep b/Makefile.dep
index ea69bd9de785b37c6fe099f814d218a6c13eca5a..b17ed8e60b5c2a13acf2fda25e7eb74bdf885f86 100644
--- a/Makefile.dep
+++ b/Makefile.dep
@@ -354,3 +354,7 @@ endif
 ifneq (,$(filter mpu9150,$(USEMODULE)))
     USEMODULE += xtimer
 endif
+
+ifneq (,$(filter sht11,$(USEMODULE)))
+    USEMODULE += xtimer
+endif
diff --git a/drivers/include/sht11.h b/drivers/include/sht11.h
index 31ae8db8bae1cadad38f3a53189adc8f88d82a06..6dbfd9405148649eb27a44b2898f5b470818f2f5 100644
--- a/drivers/include/sht11.h
+++ b/drivers/include/sht11.h
@@ -37,9 +37,9 @@ extern "C" {
 #define SHT11_RESET         (0x1E)  //000  1111    0
 
 /* time to wait after toggling the data line */
-#define SHT11_DATA_WAIT     (HWTIMER_TICKS(1))
+#define SHT11_DATA_WAIT     (1)
 /* time to wait after toggling the clock line */
-#define SHT11_CLK_WAIT      (HWTIMER_TICKS(1))
+#define SHT11_CLK_WAIT      (1)
 
 /* set measurement timeout to 1 second */
 #define SHT11_MEASURE_TIMEOUT   (1000)
diff --git a/drivers/sht11/sht11.c b/drivers/sht11/sht11.c
index 20445d1a87453debf0418228f6f628ed7f103c89..9e9c705afa8787328f5e3db26c73083b351333e9 100644
--- a/drivers/sht11/sht11.c
+++ b/drivers/sht11/sht11.c
@@ -25,7 +25,7 @@
 #include <stdio.h>
 #include <stdint.h>
 
-#include "hwtimer.h"
+#include "xtimer.h"
 #include "mutex.h"
 #include "sht11.h"
 #include "sht11-board.h"
@@ -84,9 +84,9 @@ mutex_t sht11_mutex = MUTEX_INIT;
 static inline void clk_signal(void)
 {
     SHT11_SCK_HIGH;
-    hwtimer_wait(SHT11_CLK_WAIT);
+    xtimer_usleep(SHT11_CLK_WAIT);
     SHT11_SCK_LOW;
-    hwtimer_wait(SHT11_CLK_WAIT);
+    xtimer_usleep(SHT11_CLK_WAIT);
 }
 
 /*---------------------------------------------------------------------------*/
@@ -101,11 +101,11 @@ static uint8_t write_byte(uint8_t value)
     for (i = 0; i < 8; i++) {
         if (value & BIT7) {
             SHT11_DATA_HIGH;
-            hwtimer_wait(SHT11_DATA_WAIT);
+            xtimer_usleep(SHT11_DATA_WAIT);
         }
         else {
             SHT11_DATA_LOW;
-            hwtimer_wait(SHT11_DATA_WAIT);
+            xtimer_usleep(SHT11_DATA_WAIT);
         }
 
         /* trigger clock signal */
@@ -117,7 +117,7 @@ static uint8_t write_byte(uint8_t value)
 
     /* wait for ack */
     SHT11_DATA_IN;
-    hwtimer_wait(SHT11_CLK_WAIT);
+    xtimer_usleep(SHT11_CLK_WAIT);
     ack = SHT11_DATA;
 
     clk_signal();
@@ -131,13 +131,13 @@ static uint8_t read_byte(uint8_t ack)
     uint8_t value = 0;
 
     SHT11_DATA_IN;
-    hwtimer_wait(SHT11_DATA_WAIT);
+    xtimer_usleep(SHT11_DATA_WAIT);
 
     /* read value bit by bit */
     for (i = 0; i < 8; i++) {
         value = value << 1;
         SHT11_SCK_HIGH;
-        hwtimer_wait(SHT11_CLK_WAIT);
+        xtimer_usleep(SHT11_CLK_WAIT);
 
         if (SHT11_DATA) {
             /* increase data by one when DATA is high */
@@ -145,7 +145,7 @@ static uint8_t read_byte(uint8_t ack)
         }
 
         SHT11_SCK_LOW;
-        hwtimer_wait(SHT11_CLK_WAIT);
+        xtimer_usleep(SHT11_CLK_WAIT);
     }
 
     /* send ack if necessary */
@@ -153,11 +153,11 @@ static uint8_t read_byte(uint8_t ack)
 
     if (ack) {
         SHT11_DATA_LOW;
-        hwtimer_wait(SHT11_DATA_WAIT);
+        xtimer_usleep(SHT11_DATA_WAIT);
     }
     else {
         SHT11_DATA_HIGH;
-        hwtimer_wait(SHT11_DATA_WAIT);
+        xtimer_usleep(SHT11_DATA_WAIT);
     }
 
     clk_signal();
@@ -179,27 +179,27 @@ static void transmission_start(void)
 
     /* set initial state */
     SHT11_DATA_HIGH;
-    hwtimer_wait(SHT11_DATA_WAIT);
+    xtimer_usleep(SHT11_DATA_WAIT);
     SHT11_SCK_LOW;
-    hwtimer_wait(SHT11_CLK_WAIT);
+    xtimer_usleep(SHT11_CLK_WAIT);
 
     SHT11_SCK_HIGH;
-    hwtimer_wait(SHT11_CLK_WAIT);
+    xtimer_usleep(SHT11_CLK_WAIT);
 
     SHT11_DATA_LOW;
-    hwtimer_wait(SHT11_DATA_WAIT);
+    xtimer_usleep(SHT11_DATA_WAIT);
 
     SHT11_SCK_LOW;
-    hwtimer_wait(SHT11_CLK_WAIT);
+    xtimer_usleep(SHT11_CLK_WAIT);
 
     SHT11_SCK_HIGH;
-    hwtimer_wait(SHT11_CLK_WAIT);
+    xtimer_usleep(SHT11_CLK_WAIT);
 
     SHT11_DATA_HIGH;
-    hwtimer_wait(SHT11_DATA_WAIT);
+    xtimer_usleep(SHT11_DATA_WAIT);
 
     SHT11_SCK_LOW;
-    hwtimer_wait(SHT11_CLK_WAIT);
+    xtimer_usleep(SHT11_CLK_WAIT);
 }
 /*---------------------------------------------------------------------------*/
 static void connection_reset(void)
@@ -211,9 +211,9 @@ static void connection_reset(void)
     */
     uint8_t i;
     SHT11_DATA_HIGH;
-    hwtimer_wait(SHT11_DATA_WAIT);
+    xtimer_usleep(SHT11_DATA_WAIT);
     SHT11_SCK_LOW;
-    hwtimer_wait(SHT11_CLK_WAIT);
+    xtimer_usleep(SHT11_CLK_WAIT);
 
     for (i = 0; i < 9; i++) {
         clk_signal();
@@ -231,7 +231,7 @@ static uint8_t measure(uint8_t *p_value, uint8_t *p_checksum, uint8_t mode)
     transmission_start();
     error = write_byte(mode);
 
-    hwtimer_wait(HWTIMER_TICKS(1000));
+    xtimer_usleep(1000);
 
     /* wait untile sensor has finished measurement or timeout */
     for (i = 0; (i < SHT11_MEASURE_TIMEOUT) && (!error); i++) {
@@ -241,7 +241,7 @@ static uint8_t measure(uint8_t *p_value, uint8_t *p_checksum, uint8_t mode)
             break;
         }
 
-        hwtimer_wait(HWTIMER_TICKS(1000));
+        xtimer_usleep(1000);
     }
 
     error += ack;
@@ -260,7 +260,7 @@ void sht11_init(void)
 {
     sht11_temperature_offset = 0;
     SHT11_INIT;
-    hwtimer_wait(11 * HWTIMER_TICKS(1000));
+    xtimer_usleep(11 * 1000);
 }
 /*---------------------------------------------------------------------------*/
 uint8_t sht11_read_status(uint8_t *p_value, uint8_t *p_checksum)