diff --git a/js/infinite-scroll.js b/js/infinite-scroll.js
index f42b195..aa1b6f3 100644
--- a/js/infinite-scroll.js
+++ b/js/infinite-scroll.js
@@ -40,11 +40,33 @@
     var $existingPager = view.$view.find(pagerSelector);
     $existingPager.removeOnce('infinite-scroll');
 
-    var $newRows = $newView.find(contentWrapperSelector).children();
-    var $newPager = $newView.find('.js-pager__items');
+    // Check if masonry is involved
+    if (document.querySelector('.masonry-layout')) {
+      // get only .views-row as new rows
+      var $newRows = $newView.find(contentWrapperSelector).find('.views-row');
+
+      // Add the new rows to existing view.
+      var object = ".view-" + view.settings.view_name + '.view-display-id-' + view.settings.view_display_id + " > .view-content";
+      var settings = new Object();
+      settings = drupalSettings.masonry[object];
+      $(object).append($newRows);
+      // Load images first if necessary.
+      if (settings.images_first) {
+        $(object).imagesLoaded(function () {
+        $(object).masonry('appended', $newRows, true);
+        });
+      } else {
+        $(object).masonry('appended', $newRows, true);
+      }
+    }
+    else {
+    // get all children of contentWrapperSelector as new rows
+      var $newRows = $newView.find(contentWrapperSelector).children();
+      // Add the new rows to existing view.
+      view.$view.find(contentWrapperSelector).append($newRows);
+    }
 
-    // Add the new rows to existing view.
-    view.$view.find(contentWrapperSelector).append($newRows);
+    var $newPager = $newView.find('.js-pager__items');
     // Replace the pager link with the new link and ajaxPageState values.
     $existingPager.replaceWith($newPager);
 
