diff --git a/app/assets/javascripts/app/helpers/direction_detector.js b/app/assets/javascripts/app/helpers/direction_detector.js
index ee149571865fcfeb31e0f11d178cbb11a1d051a7..768aeb8b3c6c78eab4a5822a07119c6e7fbb66a5 100644
--- a/app/assets/javascripts/app/helpers/direction_detector.js
+++ b/app/assets/javascripts/app/helpers/direction_detector.js
@@ -18,7 +18,7 @@
                 return false;
       }
 
-      var charCode = str.charCodeAt(0);
+      var charCode = this._fixedCharCodeAt(str, 0);
       if(charCode >= 1536 && charCode <= 1791) // Sarabic, Persian, ...
                 return true;
 
@@ -34,6 +34,12 @@
       else if(charCode>=64256 && charCode<=64335) // Hebrew present
                 return true;
 
+      else if(charCode>=68096 && charCode<=68184)  // Kharoshthi
+                return true;
+
+      else if(charCode>=67840 && charCode<=67871)  // Phoenician
+                return true;
+
       else if(charCode>=1792 && charCode<=1871) // Syriac
                 return true;
 
@@ -47,6 +53,39 @@
                 return true;
 
       return false;
+    },
+
+    // source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt
+    _fixedCharCodeAt: function(str, idx) {
+      str += '';
+      var code,
+          end = str.length;
+
+      var surrogatePairs = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
+      while ((surrogatePairs.exec(str)) != null) {
+        var li = surrogatePairs.lastIndex;
+        if (li - 2 < idx) {
+          idx++;
+        }
+        else {
+          break;
+        }
+      }
+
+      if (idx >= end || idx < 0) {
+        return NaN;
+      }
+
+      code = str.charCodeAt(idx);
+
+      var hi, low;
+      if (0xD800 <= code && code <= 0xDBFF) {
+        hi = code;
+        low = str.charCodeAt(idx+1);
+        // Go one further, since one of the "characters" is part of a surrogate pair
+        return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;
+      }
+      return code;
     }
   };
 })();
diff --git a/app/assets/javascripts/app/helpers/handlebars-helpers.js b/app/assets/javascripts/app/helpers/handlebars-helpers.js
index bfc718ba3b7ee6a419319086b83f871dd17a36a2..1be1cd98d07969fc6e73d9b35f511a03975ee44d 100644
--- a/app/assets/javascripts/app/helpers/handlebars-helpers.js
+++ b/app/assets/javascripts/app/helpers/handlebars-helpers.js
@@ -59,8 +59,9 @@ Handlebars.registerHelper('hovercardable', function(person) {
 Handlebars.registerHelper('personImage', function(person, size, imageClass) {
   /* we return here if person.avatar is blank, because this happens when a
    * user is unauthenticated.  we don't know why this happens... */
+  if( !person.avatar &&
+      !(person.profile && person.profile.avatar) ) return;
   var avatar = person.avatar || person.profile.avatar;
-  if( !avatar ) return;
 
   var name = ( person.name ) ? person.name : 'avatar';
   size = ( !_.isString(size) ) ? "small" : size;
diff --git a/app/assets/javascripts/jasmine-load-all.js b/app/assets/javascripts/jasmine-load-all.js
index 8d777a10cceae7f99cb7a8199c1576dcb840ec02..eda5e0faab842a20e29e4038e4dc65849214bd01 100644
--- a/app/assets/javascripts/jasmine-load-all.js
+++ b/app/assets/javascripts/jasmine-load-all.js
@@ -6,6 +6,5 @@
 //= require inbox
 //= require mobile
 //= require profile
-//= require people
 //= require contact-list
 //= require sinon
diff --git a/spec/javascripts/app/helpers/direction_detector_spec.js b/spec/javascripts/app/helpers/direction_detector_spec.js
new file mode 100644
index 0000000000000000000000000000000000000000..6ade3d00b40c33e938a7687950a3ac7f6f69b15d
--- /dev/null
+++ b/spec/javascripts/app/helpers/direction_detector_spec.js
@@ -0,0 +1,37 @@
+describe("app.helpers.txtDirection", function() {
+  context("#isRTL", function() {
+    beforeEach(function() {
+      this.samples = {
+        "ثم بغزو ناجازاكي الأوروبي بال, ": "rtl",  // arabic
+        "אם ברית מחליטה זכר, צ'ט לשון": "rtl",  // hebrew
+        "ߊߍߌߐߎ": "rtl",  // n'ko
+        "𐨙𐨜𐨪𐨭𐨢": "rtl",  // Kharoshthi
+        "𐤂𐤃𐤄𐤅𐤆𐤇𐤈𐤉𐤊": "rtl",  // Phoenecian
+        "ܫܠܡܐ": "rtl",  //syriac
+        "ހަށް  ގޮސް  އުޅޭ  އިރު": "rtl",  // thaana
+        "ⴻⴼⴽⵄⵅⵆⵇ": "rtl",  // Tifinagh
+        "ᚳᚴᚵᚶᚷᚸᚹᛅᛆᛇᛈᛉᛊᛋ": "ltr",  // Runes
+        "ΘΛΞΠΣΦΨΩέαβγζλφχψϖϗ": "ltr",  // Greek
+        "経担裁洋府時話家": "ltr",  // Chinese
+        "Анёмал зэнтынтиаэ": "ltr",  // Cyrillic
+        "उपेक्ष सोफ़्टवेर विचारशिलता": "ltr",  // Hindi
+        "選そ前制数えほ長春セ名": "ltr",  // Japanese
+        "ascii text": "ltr",
+      };
+    });
+
+    it("detects the right text direction", function() {
+      _.each(this.samples, function(dir, str) {
+        var result = app.helpers.txtDirection.isRTL(str);
+        if( result ) {
+          expect(dir).toEqual('rtl');
+        } else {
+          expect(dir).toEqual('ltr');
+        }
+      });
+    });
+  });
+});
+
+
+101
diff --git a/spec/javascripts/app/views/aspects_dropdown_view_spec.js b/spec/javascripts/app/views/aspects_dropdown_view_spec.js
index 326d6a583c4421027e0ef77a39b8d1e94df9642b..605a92df31a6d5bec4daf90d6b184c448f103c96 100644
--- a/spec/javascripts/app/views/aspects_dropdown_view_spec.js
+++ b/spec/javascripts/app/views/aspects_dropdown_view_spec.js
@@ -1,10 +1,15 @@
 describe("app.views.AspectsDropdown", function(){
   beforeEach(function() {
     spec.loadFixture("bookmarklet");
-    Diaspora.I18n.load({
+    Diaspora.I18n.reset({
       'aspect_dropdown': {
-        'select_aspects': "Select aspects"
-    });
+        'select_aspects': "Select aspects",
+        'all_aspects': "All Aspects",
+        'toggle': {
+          'zero': "Select aspects",
+          'one': "In <%= count %> aspect",
+          'other': "In <%= count %> aspects"
+    }}});
     this.view = new app.views.AspectsDropdown({el: $('.aspect_dropdown')});
   });
 
diff --git a/spec/javascripts/app/views/poll_view_spec.js b/spec/javascripts/app/views/poll_view_spec.js
index d2b30e889b3a6fcbd9ab4236f9c2b0cc62921828..ee514316520996d6cc35d6c7f7ede40388fbf0de 100644
--- a/spec/javascripts/app/views/poll_view_spec.js
+++ b/spec/javascripts/app/views/poll_view_spec.js
@@ -29,7 +29,7 @@ describe("app.views.Poll", function(){
 
       this.view.vote(answer.id);
 
-      var obj = jasmine.Ajax.requests.mostRecent().params);
+      var obj = JSON.parse(jasmine.Ajax.requests.mostRecent().params);
       expect(obj.poll_id).toBe(poll.poll_id);
       expect(obj.poll_answer_id).toBe(answer.id);
     })