diff --git a/Helicity/Vertex/Scalar/SSSVertex.cc b/Helicity/Vertex/Scalar/SSSVertex.cc
--- a/Helicity/Vertex/Scalar/SSSVertex.cc
+++ b/Helicity/Vertex/Scalar/SSSVertex.cc
@@ -1,58 +1,60 @@
 // -*- C++ -*-
 //
 // SSSVertex.cc is a part of ThePEG - Toolkit for HEP Event Generation
 // Copyright (C) 2003-2017 Peter Richardson, Leif Lonnblad
 //
 // ThePEG is licenced under version 3 of the GPL, see COPYING for details.
 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
 //
 //
 // This is the implementation of the non-inlined, non-templated member
 // functions of the SSSVertex class.
 //
 
 #include "SSSVertex.h"
 #include "ThePEG/Utilities/DescribeClass.h"
 #include "ThePEG/Interface/ClassDocumentation.h"
 
 using namespace ThePEG;
 using namespace Helicity;
 
 // The following static variable is needed for the type
 // description system in ThePEG.
 DescribeAbstractNoPIOClass<SSSVertex,AbstractSSSVertex>
 describeThePEGSSSVertex("ThePEG::SSSVertex", "libThePEG.so");
 
 void SSSVertex::Init() {
   
   static ClassDocumentation<SSSVertex> documentation
     ("The SSSVertex class is the implementation of the SSS"
      "vertex. All such vertices shoud inherit from it");
 }
 
 // evaluate the vertex
 Complex SSSVertex::evaluate(Energy2 q2,
 			    const ScalarWaveFunction & sca1,
 			    const ScalarWaveFunction & sca2,
  			    const ScalarWaveFunction & sca3) {
+  if(kinematics()) calculateKinematics(sca1.momentum(),sca2.momentum(),sca3.momentum());
   // calculate the coupling
   setCoupling(q2,sca1.particle(),sca2.particle(),sca3.particle());
   // return the answer
   return Complex(0.,1.)*norm()*sca1.wave()*sca2.wave()*sca3.wave();
 }
 
 // off-shell scalar
 ScalarWaveFunction SSSVertex::evaluate(Energy2 q2,int iopt, tcPDPtr out, 
 				       const ScalarWaveFunction & sca1,
 				       const ScalarWaveFunction & sca2,
 				       complex<Energy> mass,
 				       complex<Energy> width) {
   // outgoing momentum 
-  Lorentz5Momentum pout = sca1.momentum()+sca2.momentum(); 
+  Lorentz5Momentum pout = sca1.momentum()+sca2.momentum();
+  if(kinematics()) calculateKinematics(sca1.momentum(),sca2.momentum(),pout);
   // calculate the coupling
   setCoupling(q2,sca1.particle(),sca2.particle(),out);
   // wavefunction
   Energy2 p2=pout.m2();
   Complex fact=-norm()*sca1.wave()*sca2.wave()*propagator(iopt,p2,out,mass,width);
   return ScalarWaveFunction(pout,out,fact);
 }