diff --git a/MatrixElement/Matchbox/Dipoles/IIgqxDipole.h b/MatrixElement/Matchbox/Dipoles/IIgqxDipole.h
--- a/MatrixElement/Matchbox/Dipoles/IIgqxDipole.h
+++ b/MatrixElement/Matchbox/Dipoles/IIgqxDipole.h
@@ -1,159 +1,159 @@
 // -*- C++ -*-
 //
 // IIgqxDipole.h is a part of Herwig - A multi-purpose Monte Carlo event generator
 // Copyright (C) 2002-2012 The Herwig Collaboration
 //
 // Herwig is licenced under version 2 of the GPL, see COPYING for details.
 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
 //
 #ifndef HERWIG_IIgqxDipole_H
 #define HERWIG_IIgqxDipole_H
 //
 // This is the declaration of the IIgqxDipole class.
 //
 
 #include "Herwig/MatrixElement/Matchbox/Dipoles/SubtractionDipole.h"
 
 namespace Herwig {
 
 using namespace ThePEG;
 
 /**
  * \ingroup Matchbox
  * \author Simon Platzer
  *
  * \brief IIgqxDipole implements the D^{g,q,k} subtraction dipole
  *
  */
 class IIgqxDipole: public SubtractionDipole {
 
 public:
 
   /** @name Standard constructors and destructors. */
   //@{
   /**
    * The default constructor.
    */
   IIgqxDipole();
 
   /**
    * The destructor.
    */
   virtual ~IIgqxDipole();
   //@}
 
 public:
 
   /**
    * Return true, if this dipole can possibly handle the indicated
    * emitter.
    */
   virtual bool canHandleEmitter(const cPDVector& partons, int emitter) const {
     return emitter < 2 && partons[emitter]->id() == ParticleID::g;
   }
 
   /**
    * Return true, if this dipole can possibly handle the indicated
    * splitting.
    */
   virtual bool canHandleSplitting(const cPDVector& partons, int emitter, int emission) const {
     return canHandleEmitter(partons,emitter) && abs(partons[emission]->id()) < 7;
   }
 
   /**
    * Return true, if this dipole can possibly handle the indicated
    * spectator.
    */
   virtual bool canHandleSpectator(const cPDVector& partons, int spectator) const {
     return spectator < 2 && partons[spectator]->coloured();
   }
 
   /**
    * Return true, if this dipole applies to the selected
    * configuration.
    */
   virtual bool canHandle(const cPDVector& partons,
 			 int emitter, int emission, int spectator) const;
   /**
    *  How to sample the z-distribution.
    *  FlatZ = 1
    *  OneOverZ = 2
    *  OneOverOneMinusZ = 3
    *  OneOverZOneMinusZ = 4
    */
 
-  virtual int samplingZ() const {return 2;}
+  virtual int samplingZ() const {return 1;}
   
   /**
    * Return the matrix element for the kinematical configuation
    * previously provided by the last call to setKinematics(), suitably
    * scaled by sHat() to give a dimension-less number.
    */
   virtual double me2() const;
 
   /**
    * Return the matrix element averaged over spin correlations.
    */
   virtual double me2Avg(double ccme2) const;
 
 public:
 
   /** @name Functions used by the persistent I/O system. */
   //@{
   /**
    * Function used to write out object persistently.
    * @param os the persistent output stream written to.
    */
   void persistentOutput(PersistentOStream & os) const;
 
   /**
    * Function used to read in object persistently.
    * @param is the persistent input stream read from.
    * @param version the version number of the object when written.
    */
   void persistentInput(PersistentIStream & is, int version);
   //@}
 
   /**
    * The standard Init function used to initialize the interfaces.
    * Called exactly once for each class by the class description system
    * before the main function starts or
    * when this class is dynamically loaded.
    */
   static void Init();
 
 protected:
 
   /** @name Clone Methods. */
   //@{
   /**
    * Make a simple clone of this object.
    * @return a pointer to the new object.
    */
   virtual IBPtr clone() const;
 
   /** Make a clone of this object, possibly modifying the cloned object
    * to make it sane.
    * @return a pointer to the new object.
    */
   virtual IBPtr fullclone() const;
   //@}
 
 
 // If needed, insert declarations of virtual function defined in the
 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
 
 
 private:
 
   /**
    * The assignment operator is private and must never be called.
    * In fact, it should not even be implemented.
    */
   IIgqxDipole & operator=(const IIgqxDipole &);
 
 };
 
 }
 
 #endif /* HERWIG_IIgqxDipole_H */
diff --git a/MatrixElement/Matchbox/Dipoles/IIqgxDipole.h b/MatrixElement/Matchbox/Dipoles/IIqgxDipole.h
--- a/MatrixElement/Matchbox/Dipoles/IIqgxDipole.h
+++ b/MatrixElement/Matchbox/Dipoles/IIqgxDipole.h
@@ -1,160 +1,160 @@
 // -*- C++ -*-
 //
 // IIqgxDipole.h is a part of Herwig - A multi-purpose Monte Carlo event generator
 // Copyright (C) 2002-2012 The Herwig Collaboration
 //
 // Herwig is licenced under version 2 of the GPL, see COPYING for details.
 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
 //
 #ifndef HERWIG_IIqgxDipole_H
 #define HERWIG_IIqgxDipole_H
 //
 // This is the declaration of the IIqgxDipole class.
 //
 
 #include "Herwig/MatrixElement/Matchbox/Dipoles/SubtractionDipole.h"
 
 namespace Herwig {
 
 using namespace ThePEG;
 
 /**
  * \ingroup Matchbox
  * \author Simon Platzer
  *
  * \brief IIqgxDipole implements the D^{q,g;b} subtraction dipole
  *
  */
 class IIqgxDipole: public SubtractionDipole {
 
 public:
 
   /** @name Standard constructors and destructors. */
   //@{
   /**
    * The default constructor.
    */
   IIqgxDipole();
 
   /**
    * The destructor.
    */
   virtual ~IIqgxDipole();
   //@}
 
 public:
 
   /**
    * Return true, if this dipole can possibly handle the indicated
    * emitter.
    */
   virtual bool canHandleEmitter(const cPDVector& partons, int emitter) const {
     return emitter < 2 && abs(partons[emitter]->id()) < 7;
   }
 
   /**
    * Return true, if this dipole can possibly handle the indicated
    * splitting.
    */
   virtual bool canHandleSplitting(const cPDVector& partons, int emitter, int emission) const {
     return canHandleEmitter(partons,emitter) && partons[emission]->id() == ParticleID::g;
   }
 
   /**
    * Return true, if this dipole can possibly handle the indicated
    * spectator.
    */
   virtual bool canHandleSpectator(const cPDVector& partons, int spectator) const {
     return spectator < 2 && partons[spectator]->coloured();
   }
 
   /**
    * Return true, if this dipole applies to the selected
    * configuration.
    */
   virtual bool canHandle(const cPDVector& partons,
 			 int emitter, int emission, int spectator) const;
 			 
   /**
    *  How to sample the z-distribution.
    *  FlatZ = 1
    *  OneOverZ = 2
    *  OneOverOneMinusZ = 3
    *  OneOverZOneMinusZ = 4
    */
 
-  virtual int samplingZ() const {return 4;}
+  virtual int samplingZ() const {return 3;}
 			 
   /**
    * Return the matrix element for the kinematical configuation
    * previously provided by the last call to setKinematics(), suitably
    * scaled by sHat() to give a dimension-less number.
    */
   virtual double me2() const;
 
   /**
    * Return the matrix element averaged over spin correlations.
    */
   virtual double me2Avg(double ccme2) const;
 
 public:
 
   /** @name Functions used by the persistent I/O system. */
   //@{
   /**
    * Function used to write out object persistently.
    * @param os the persistent output stream written to.
    */
   void persistentOutput(PersistentOStream & os) const;
 
   /**
    * Function used to read in object persistently.
    * @param is the persistent input stream read from.
    * @param version the version number of the object when written.
    */
   void persistentInput(PersistentIStream & is, int version);
   //@}
 
   /**
    * The standard Init function used to initialize the interfaces.
    * Called exactly once for each class by the class description system
    * before the main function starts or
    * when this class is dynamically loaded.
    */
   static void Init();
 
 protected:
 
   /** @name Clone Methods. */
   //@{
   /**
    * Make a simple clone of this object.
    * @return a pointer to the new object.
    */
   virtual IBPtr clone() const;
 
   /** Make a clone of this object, possibly modifying the cloned object
    * to make it sane.
    * @return a pointer to the new object.
    */
   virtual IBPtr fullclone() const;
   //@}
 
 
 // If needed, insert declarations of virtual function defined in the
 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
 
 
 private:
 
   /**
    * The assignment operator is private and must never be called.
    * In fact, it should not even be implemented.
    */
   IIqgxDipole & operator=(const IIqgxDipole &);
 
 };
 
 }
 
 #endif /* HERWIG_IIqgxDipole_H */