Index: external/fastjet/contribs/Nsubjettiness/ChangeLog
===================================================================
--- external/fastjet/contribs/Nsubjettiness/ChangeLog	(revision 973b92a3bf3d2d9073e3b7917710e4fac19714c7)
+++ external/fastjet/contribs/Nsubjettiness/ChangeLog	(revision b9ae4c316292ad9d2adf871554b0e21aee6a5436)
@@ -1,2 +1,11 @@
+2016-06-08 <jthaler>
+   Fixed bug in MeasureDefinition.cc where axes were not completely defined,
+      leading to problems with multi-pass axes 
+2016-04-04 <jthaler>
+   Fixed Njettiness.cc to give value of _current_tau_components even if less
+      than N constituents
+   Delete extraneous code in example_advanced_usage.cc
+2016-03-29 <jthaler>
+   Update for FJ 3.2.0 to deal with SharedPtr () deprecation
 2015-09-28 <jthaler>
    Updated NEWS for 2.2.1 release.
Index: external/fastjet/contribs/Nsubjettiness/MeasureDefinition.cc
===================================================================
--- external/fastjet/contribs/Nsubjettiness/MeasureDefinition.cc	(revision 973b92a3bf3d2d9073e3b7917710e4fac19714c7)
+++ external/fastjet/contribs/Nsubjettiness/MeasureDefinition.cc	(revision b9ae4c316292ad9d2adf871554b0e21aee6a5436)
@@ -5,5 +5,5 @@
 //  Jesse Thaler, Ken Van Tilburg, Christopher K. Vermilion, and TJ Wilkason
 //
-//  $Id: MeasureDefinition.cc 819 2015-06-12 21:23:24Z jthaler $
+//  $Id: MeasureDefinition.cc 946 2016-06-14 19:11:27Z jthaler $
 //----------------------------------------------------------------------
 // This file is part of FastJet contrib.
@@ -524,4 +524,5 @@
       old_axes[k].set_rap( seedAxes[k].rap() );
       old_axes[k].set_phi( seedAxes[k].phi() );
+      old_axes[k].set_mom( seedAxes[k].modp()  );
    }
    
Index: external/fastjet/contribs/Nsubjettiness/NEWS
===================================================================
--- external/fastjet/contribs/Nsubjettiness/NEWS	(revision 973b92a3bf3d2d9073e3b7917710e4fac19714c7)
+++ external/fastjet/contribs/Nsubjettiness/NEWS	(revision b9ae4c316292ad9d2adf871554b0e21aee6a5436)
@@ -32,4 +32,9 @@
     N-jettiness as a jet finder using the new ConicalGeometric measure.
 
+-- 2.2.4:  (Jun 14, 2016) Fixed bug where multi-pass minimization could yield
+           pathological axes (thanks Gregory Soyez) 
+-- 2.2.3:  (Apr 4, 2016) Fixed bug where a jet with fewer than N constituents
+           could give random value for tau_N (thanks Nathan Hartland)
+-- 2.2.2:  (Mar 29, 2016)  Updating SharedPtr interface for FJ 3.2
 -- 2.2.1:  (Sept 28, 2015)  Fix of small Makefile bug
 -- 2.2.0:  (Sept 7, 2015)  Inclusion of the XCone jet algorithm, as well as a
Index: external/fastjet/contribs/Nsubjettiness/Njettiness.cc
===================================================================
--- external/fastjet/contribs/Nsubjettiness/Njettiness.cc	(revision 973b92a3bf3d2d9073e3b7917710e4fac19714c7)
+++ external/fastjet/contribs/Nsubjettiness/Njettiness.cc	(revision b9ae4c316292ad9d2adf871554b0e21aee6a5436)
@@ -5,5 +5,5 @@
 //  Jesse Thaler, Ken Van Tilburg, Christopher K. Vermilion, and TJ Wilkason
 //
-//  $Id: Njettiness.cc 821 2015-06-15 18:50:53Z jthaler $
+//  $Id: Njettiness.cc 933 2016-04-04 22:23:32Z jthaler $
 //----------------------------------------------------------------------
 // This file is part of FastJet contrib.
@@ -46,5 +46,5 @@
 // setAxes for Manual mode
 void Njettiness::setAxes(const std::vector<fastjet::PseudoJet> & myAxes) {
-   if (_axes_def()->needsManualAxes()) {
+   if (_axes_def->needsManualAxes()) {
       _currentAxes = myAxes;
    } else {
@@ -59,23 +59,32 @@
       _currentAxes = inputJets;
       _currentAxes.resize(n_jets,fastjet::PseudoJet(0.0,0.0,0.0,0.0));
-      _current_tau_components = TauComponents();
+     
+     // Put in empty tau components
+     std::vector<double> dummy_jet_pieces;
+     _current_tau_components = TauComponents(UNDEFINED_SHAPE,
+                                             dummy_jet_pieces,
+                                             0.0,
+                                             1.0,
+                                             _currentAxes,
+                                             _currentAxes
+                                             );
       _seedAxes = _currentAxes;
       _currentPartition = TauPartition(n_jets); // empty partition
    } else {
-      assert(_axes_def()); // this should never fail.
+      assert(_axes_def); // this should never fail.
       
-      if (_axes_def()->needsManualAxes()) { // if manual mode
+      if (_axes_def->needsManualAxes()) { // if manual mode
          // take current axes as seeds
          _seedAxes = _currentAxes;
          
          // refine axes if requested
-         _currentAxes = _axes_def->get_refined_axes(n_jets,inputJets,_seedAxes, _measure_def());
+         _currentAxes = _axes_def->get_refined_axes(n_jets,inputJets,_seedAxes, _measure_def.get());
       } else { // non-manual axes
          
           //set starting point for minimization
-         _seedAxes = _axes_def->get_starting_axes(n_jets,inputJets,_measure_def());
+         _seedAxes = _axes_def->get_starting_axes(n_jets,inputJets,_measure_def.get());
          
          // refine axes as needed
-         _currentAxes = _axes_def->get_refined_axes(n_jets,inputJets,_seedAxes, _measure_def());
+         _currentAxes = _axes_def->get_refined_axes(n_jets,inputJets,_seedAxes, _measure_def.get());
          
          // NOTE:  The above two function calls are combined in "AxesDefinition::get_axes"
Index: external/fastjet/contribs/Nsubjettiness/VERSION
===================================================================
--- external/fastjet/contribs/Nsubjettiness/VERSION	(revision 973b92a3bf3d2d9073e3b7917710e4fac19714c7)
+++ external/fastjet/contribs/Nsubjettiness/VERSION	(revision b9ae4c316292ad9d2adf871554b0e21aee6a5436)
@@ -1,1 +1,1 @@
-2.2.1
+2.2.4
