diff --git a/src/components/library.js b/src/components/library.js
index cd0dd87690a9d2ab5d0da26a0c7cd0177c6f48b4..78f499947ef6af86d55bc04a092575e4726c21b7 100644
--- a/src/components/library.js
+++ b/src/components/library.js
@@ -1,3 +1,4 @@
+const bindAll = require('lodash.bindall');
 const React = require('react');
 
 const LibraryItem = require('./library-item');
@@ -6,6 +7,7 @@ const ModalComponent = require('./modal');
 class LibraryComponent extends React.Component {
     constructor (props) {
         super(props);
+        bindAll(this, ['onSelect']);
         this.state = {selectedItem: null};
     }
     onSelect (id) {
@@ -28,7 +30,7 @@ class LibraryComponent extends React.Component {
                 iconURL={scratchURL}
                 key={'item_' + itemId}
                 selected={this.state.selectedItem == itemId}
-                onSelect={this.onSelect.bind(this)}
+                onSelect={this.onSelect}
                 id={id} />;
         });
 
diff --git a/src/containers/backdrop-library.js b/src/containers/backdrop-library.js
index 2c36868adfef91f33986cf1e432bc8fa6f56ec67..bcac13b5237e414dcf2174577075e7eff591394d 100644
--- a/src/containers/backdrop-library.js
+++ b/src/containers/backdrop-library.js
@@ -1,3 +1,4 @@
+const bindAll = require('lodash.bindall');
 const React = require('react');
 const VM = require('scratch-vm');
 const MediaLibrary = require('../lib/media-library');
@@ -8,11 +9,12 @@ const LibaryComponent = require('../components/library');
 class BackdropLibrary extends React.Component {
     constructor (props) {
         super(props);
+        bindAll(this, ['setData', 'selectItem']);
         this.state = {backdropData: []};
     }
     componentWillReceiveProps (nextProps) {
         if (nextProps.visible && this.state.backdropData.length === 0) {
-            this.props.mediaLibrary.getMediaLibrary('backdrop', this.setData.bind(this));
+            this.props.mediaLibrary.getMediaLibrary('backdrop', this.setData);
         }
     }
     setData (data) {
@@ -36,7 +38,7 @@ class BackdropLibrary extends React.Component {
             visible={this.props.visible}
             data={this.state.backdropData}
             onRequestClose={this.props.onRequestClose}
-            onItemSelected={this.selectItem.bind(this)}
+            onItemSelected={this.selectItem}
         />;
     }
 }
diff --git a/src/containers/costume-library.js b/src/containers/costume-library.js
index f33b97b0d7367fd2330ece46b49f79bcff8d8d53..091a736ffbb6213b34d2402da3251d10e014c243 100644
--- a/src/containers/costume-library.js
+++ b/src/containers/costume-library.js
@@ -1,3 +1,4 @@
+const bindAll = require('lodash.bindall');
 const React = require('react');
 const VM = require('scratch-vm');
 const MediaLibrary = require('../lib/media-library');
@@ -8,11 +9,12 @@ const LibaryComponent = require('../components/library');
 class CostumeLibrary extends React.Component {
     constructor (props) {
         super(props);
+        bindAll(this, ['setData', 'selectItem']);
         this.state = {costumeData: []};
     }
     componentWillReceiveProps (nextProps) {
         if (nextProps.visible && this.state.costumeData.length === 0) {
-            this.props.mediaLibrary.getMediaLibrary('costume', this.setData.bind(this));
+            this.props.mediaLibrary.getMediaLibrary('costume', this.setData);
         }
     }
     setData (data) {
@@ -36,7 +38,7 @@ class CostumeLibrary extends React.Component {
             visible={this.props.visible}
             data={this.state.costumeData}
             onRequestClose={this.props.onRequestClose}
-            onItemSelected={this.selectItem.bind(this)}
+            onItemSelected={this.selectItem}
         />;
     }
 }
diff --git a/src/containers/sprite-library.js b/src/containers/sprite-library.js
index 9de69a367fd463f0ea922e1c4f8714ebb2d27d9e..a11a709e0e078ab166d8186834db9d76c444195d 100644
--- a/src/containers/sprite-library.js
+++ b/src/containers/sprite-library.js
@@ -1,3 +1,4 @@
+const bindAll = require('lodash.bindall');
 const React = require('react');
 const VM = require('scratch-vm');
 const MediaLibrary = require('../lib/media-library');
@@ -7,17 +8,18 @@ const LibaryComponent = require('../components/library');
 class SpriteLibrary extends React.Component {
     constructor (props) {
         super(props);
+        bindAll(this, ['setData', 'selectItem', 'setSpriteData']);
         this.state = {data: [], spriteData: {}};
     }
     componentWillReceiveProps (nextProps) {
         if (nextProps.visible && this.state.data.length === 0) {
-            this.props.mediaLibrary.getMediaLibrary('sprite', this.setData.bind(this));
+            this.props.mediaLibrary.getMediaLibrary('sprite', this.setData);
         }
     }
     setData (data) {
         this.setState({data: data});
         for (let sprite of data) {
-            this.props.mediaLibrary.getSprite(sprite.md5, this.setSpriteData.bind(this));
+            this.props.mediaLibrary.getSprite(sprite.md5, this.setSpriteData);
         }
     }
     setSpriteData (md5, data) {
@@ -47,7 +49,7 @@ class SpriteLibrary extends React.Component {
             data={libraryData}
             mediaLibrary={this.props.mediaLibrary}
             onRequestClose={this.props.onRequestClose}
-            onItemSelected={this.selectItem.bind(this)}
+            onItemSelected={this.selectItem}
         />;
     }
 }