diff --git l10n_client.js l10n_client.js
index 34616ac..6f70f18 100644
--- l10n_client.js
+++ l10n_client.js
@@ -86,8 +86,9 @@ jQuery.extend(Drupal, {
 
 // Attaches the localization editor behavior to all required fields.
 Drupal.behaviors.l10nClient = function (context) {
-  // Cache selector
-  var $client = $('#l10n-client');
+  // Cache selectors
+  var $client = $('#l10n-client'),
+      $stringList = $('#l10n-client-string-select li');
   // Killswitch - attach only once.
   if ($client.is('.l10n-client-processed')) {
     return;
@@ -107,10 +108,10 @@ Drupal.behaviors.l10nClient = function (context) {
   
   // If the selection changes, copy string values to the source and target fields.
   // Add class to indicate selected string in list widget.
-  $('#l10n-client-string-select li').click(function() {
-    $('#l10n-client-string-select li').removeClass('active');
+  $stringList.click(function() {
+    $stringList.removeClass('active');
     $(this).addClass('active');
-    var index = $('#l10n-client-string-select li').index(this);
+    var index = $stringList.index(this);
 
     $('#l10n-client-string-editor .source-text').text(Drupal.l10nClient.getString(index, 'source'));
     $('#l10n-client-form .translation-target').val(Drupal.l10nClient.getString(index, 'target'));
@@ -195,7 +196,7 @@ Drupal.behaviors.l10nClient = function (context) {
         }
         
         // Mark string as translated.
-        $('#l10n-client-string-select li').eq(Drupal.l10nClient.selected).removeClass('untranslated').removeClass('active').addClass('translated').text(newTranslationDisplay);
+        $stringList.eq(Drupal.l10nClient.selected).removeClass('untranslated').removeClass('active').addClass('translated').text(newTranslationDisplay);
 
         // Empty input fields.
         var messageValue = Drupal.parseJson(data);
