diff --git a/include/polarssl/check_config.h b/include/polarssl/check_config.h
index c532db0..5e21f3e 100644
--- a/include/polarssl/check_config.h
+++ b/include/polarssl/check_config.h
@@ -223,8 +223,9 @@
 #endif
 
 #if defined(POLARSSL_SSL_PROTO_DTLS) && (       \
-    !defined(POLARSSL_SSL_PROTO_TLS1_1) &&      \
-    !defined(POLARSSL_SSL_PROTO_TLS1_2) )
+    ( !defined(POLARSSL_SSL_PROTO_TLS1_1) &&      \
+      !defined(POLARSSL_SSL_PROTO_TLS1_2) ) ||    \
+    !defined(POLARSSL_TIMING_C) )
 #error "POLARSSL_SSL_PROTO_DTLS defined, but not all prerequisites"
 #endif
 
diff --git a/include/polarssl/config.h b/include/polarssl/config.h
index abc2668..6e9050a 100644
--- a/include/polarssl/config.h
+++ b/include/polarssl/config.h
@@ -908,6 +908,11 @@
  *
  * Requires: POLARSSL_SSL_PROTO_TLS1_1
  *        or POLARSSL_SSL_PROTO_TLS1_2
+ *           POLARSSL_TIMING_C
+ *
+ * \note Dependency on TIMING_C may be replaced by something more flexible
+ * (callbacks or abstraction layer in the next major version). Please contact
+ * us if you're having issues with this dependency.
  *
  * Comment this macro to disable support for DTLS
  */
diff --git a/include/polarssl/ssl.h b/include/polarssl/ssl.h
index ac6f03f..c508734 100644
--- a/include/polarssl/ssl.h
+++ b/include/polarssl/ssl.h
@@ -76,7 +76,7 @@
 #include "zlib.h"
 #endif
 
-#if defined(POLARSSL_TIMING_C)
+#if defined(POLARSSL_SSL_PROTO_DTLS)
 #include "timing.h"
 #endif
 
@@ -830,14 +830,11 @@
     ssl_transform *transform_negotiate; /*!<  transform params in negotiation */
 
     /*
-     * Timers (WIP)
+     * Timers
      */
-#if defined(POLARSSL_TIMING_C)
-    struct hr_time time_info;
-    unsigned long time_limit;
-#endif
-
 #if defined(POLARSSL_SSL_PROTO_DTLS)
+    struct hr_time time_info;   /*!< timer context                      */
+    unsigned long time_limit;   /*!< limit for the running timer        */
     uint32_t hs_timeout_min;    /*!< initial value of the handshake
                                      retransmission timeout             */
     uint32_t hs_timeout_max;    /*!< maximum value of the handshake
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 7cb1442..bfaefd4 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -79,10 +79,7 @@
 }
 
 
-/*
- * Timers (WIP)
- */
-#if defined(POLARSSL_TIMING_C)
+#if defined(POLARSSL_SSL_PROTO_DTLS)
 /*
  * Start a timer.
  * Passing millisecs = 0 cancels a running timer.
@@ -107,9 +104,7 @@
 
     return( 0 );
 }
-#endif
 
-#if defined(POLARSSL_SSL_PROTO_DTLS)
 /*
  * Double the retransmit timeout value, within the allowed range,
  * returning -1 if the maximum value has already been reached.
@@ -5755,7 +5750,7 @@
 
     if( ssl->in_offt == NULL )
     {
-#if defined(POLARSSL_TIMING_C)
+#if defined(POLARSSL_SSL_PROTO_DTLS)
         /* Start timer if not already running */
         if( ssl->time_limit == 0 )
             ssl_set_timer( ssl, ssl->read_timeout );
@@ -5912,7 +5907,7 @@
 
         ssl->in_offt = ssl->in_msg;
 
-#if defined(POLARSSL_TIMING_C)
+#if defined(POLARSSL_SSL_PROTO_DTLS)
         /* We're going to return something now, cancel timer,
          * except if handshake (renegotiation) is in progress */
         if( ssl->state == SSL_HANDSHAKE_OVER )
