diff --git a/timeago.install b/timeago.install
index 064ef61..dcb9724 100644
--- a/timeago.install
+++ b/timeago.install
@@ -9,21 +9,24 @@
  * Implements hook_requirements().
  */
 function timeago_requirements($phase) {
-  $t = get_t();
-  $requirements = array('timeago' => array(
-    'title' => $t('Time ago library'),
-    'value' => '0.9.3',
-  ));
-  $exists = file_exists(drupal_get_path('module', 'timeago') . '/jquery.timeago.js');
-  if ($exists) {
-    $requirements['timeago']['description'] = $t('Library exists.');
-    $requirements['timeago']['severity'] = REQUIREMENT_OK;
+  if (!module_exists('libraries')) {
+    $t = get_t();
+    $requirements = array('timeago' => array(
+      'title' => $t('Time ago library'),
+      'value' => '0.11',
+    ));
+    $exists = file_exists(drupal_get_path('module', 'timeago') . '/jquery.timeago.js');
+    if ($exists) {
+      $requirements['timeago']['description'] = $t('Library exists.');
+      $requirements['timeago']['severity'] = REQUIREMENT_OK;
+    }
+    else {
+      $requirements['timeago']['description'] = $t('Library does not exist. <a href="http://timeago.yarp.com/jquery.timeago.js">Download the library</a> and put it in the timeago module folder.');
+      $requirements['timeago']['severity'] = ($phase == 'runtime' ? REQUIREMENT_ERROR : REQUIREMENT_WARNING);
+    }
+    return $requirements;
   }
-  else {
-    $requirements['timeago']['description'] = $t('Library does not exist. <a href="http://timeago.yarp.com/jquery.timeago.js">Download the library</a> and put it in the timeago module folder.');
-    $requirements['timeago']['severity'] = ($phase == 'runtime' ? REQUIREMENT_ERROR : REQUIREMENT_WARNING);
-  }
-  return $requirements;
+  return array();
 }
 
 /**
diff --git a/timeago.module b/timeago.module
index cd2b65e..9378b08 100644
--- a/timeago.module
+++ b/timeago.module
@@ -83,7 +83,7 @@ function timeago_library() {
     'timeago' => array(
       'title' => t('Time ago'),
       'website' => 'http://timeago.yarp.com/',
-      'version' => '0.9.3',
+      'version' => '0.11',
       'js' => array(
         $path . '/jquery.timeago.js' => array(),
         $path . '/timeago.js' => array(),
@@ -93,6 +93,28 @@ function timeago_library() {
 }
 
 /**
+ * Implements hook_libraries_info().
+ */
+function timeago_libraries_info() {
+  return array(
+    'timeago' => array(
+      'name' => t('Time ago'),
+      'vendor url' => 'http://timeago.yarp.com/',
+      'download url' => 'http://timeago.yarp.com/jquery.timeago.js',
+      'version arguments' => array(
+        'file' => 'jquery.timeago.js',
+        'pattern' => '@version\s+([0-9a-zA-Z\.-]+)@', // e.g. @version 0.11
+      ),
+      'files' => array(
+        'js' => array(
+          'jquery.timeago.js' => array(),
+        ),
+      ),
+    ),
+  );
+}
+
+/**
  * Implements hook_process_node().
  *
  * We have to use process instead of preprocess because some themes (notably
@@ -167,7 +189,14 @@ function timeago_tokens($type, $tokens, array $data = array(), array $options =
 function timeago_add_js() {
   // Add the Timeago library, the module's helper JS, and the default Drupal
   // translation of Timeago date terms.
-  drupal_add_library('timeago', 'timeago');
+  if (module_exists('libraries')) {
+    $path = drupal_get_path('module', 'timeago') . '/timeago.js';
+    drupal_add_js($path);
+    libraries_load('timeago');
+  }
+  else {
+    drupal_add_library('timeago', 'timeago');
+  }
   // Some languages (Arabic, Polish, Russian, Ukranian, etc.) have different
   // suffixes depending on the numbers used in the dates, so we may need to
   // have more complex translations than Drupal allows. To support these cases,
