diff --git a/FONLL/src/FONLL_wrap.f b/FONLL/src/FONLL_wrap.f
index 5bf4a084c244668c53a3d8a3eb7fabf84490e994..a476a61c97bda953d8d7e20eb43ef6445a22c032 100644
--- a/FONLL/src/FONLL_wrap.f
+++ b/FONLL/src/FONLL_wrap.f
@@ -4,7 +4,7 @@
 *
 ************************************************************************
       subroutine FONLL_Set_Input(MassScheme,runm,Mcharm,MBottom,MTop,
-     1                           Q_ref,Alphas_ref,PtOrder,Scheme)
+     1                           Q_ref,Alphas_ref,PtOrder,Scheme,Smallx)
 *
       implicit none
 *
@@ -17,7 +17,7 @@
       double precision Q_ref,Alphas_ref
       character*7 Scheme
       character*5 MassScheme
-      logical runm
+      logical runm,Smallx
       double precision Q2save
       common / PreviousQ2 / Q2save
 **
@@ -54,6 +54,7 @@
       call SetMassScheme(scheme)
       call SetNumberOfGrids(3)
 c      call EnableDampingFONLL(.false.)
+c      call SetDampingPowerFONLL(-1,2,2)
       call SetGridParameters(1,50,3,9.8d-7)
       call SetGridParameters(2,40,3,1d-2)
       call SetGridParameters(3,40,3,7d-1)
@@ -77,6 +78,13 @@ c      call EnableDampingFONLL(.false.)
          endif
       endif
 *
+*     Small-x resummation
+*
+      if(Smallx)then
+         call SetSmallxResummation(.true.,"NLL")
+         call SetQLimits(1.6d0,4550d0)
+      endif
+*
 *     Initialize the APFEL DIS module
 *
       call InitializeAPFEL_DIS()
diff --git a/ewparam.txt b/ewparam.txt
index 8caabee17fa41b553bafb272d6f808b28bf1ffcf..adfcc815eaee1ae3bea1825105d65655b2de8256 100644
--- a/ewparam.txt
+++ b/ewparam.txt
@@ -58,7 +58,8 @@
   mst			= 0.150d0
 
  ! Heavy quark masses:
-  mch			= 1.43d0    ! Synchronize with QCDNUM,RT
+  !mch			= 1.43d0    ! Synchronize with QCDNUM,RT
+  mch			= 1.46d0    ! Synchronize with QCDNUM,RT
   mtp			= 173d0    ! Synchronize with QCDNUM
   mbt			= 4.5d0   ! Synchronize with QCDNUM,RT
    
diff --git a/include/dimensions.h b/include/dimensions.h
index ded5b51c558f004b71bfd7942cb1300d6a8b1a0c..5beb0deed50be43be935d896be4a9f51b1eb0006 100644
--- a/include/dimensions.h
+++ b/include/dimensions.h
@@ -1,5 +1,5 @@
 #ifndef NSYSMAX_C
-#define NSYSMAX_C 750
+#define NSYSMAX_C 1500
 #endif
 #ifndef NTOT_C
 #define NTOT_C 2700
diff --git a/minuit.in.txt b/minuit.in.txt
index 22a64cb9c018e584d4517397d915277631133810..cb00443207ab6a3eb3a9499b5aab99c2355e9712 100644
--- a/minuit.in.txt
+++ b/minuit.in.txt
@@ -1,25 +1,25 @@
 set title
 new  14p HERAPDF
 parameters
-    2   'Bg'   -0.061953    0.027133
-    3   'Cg'    5.562367    0.318464
-    7   'Aprig'    0.166118    0.028009
-    8   'Bprig'   -0.383100    0.009784
+    2   'Bg'   -0.089607    0.017340
+    3   'Cg'    6.181438    0.561598
+    7   'Aprig'   -0.000253    0.000162
+    8   'Bprig'   -0.963059    0.058750
     9   'Cprig'   25.000000    0.000000
-   12   'Buv'    0.810476    0.016017
-   13   'Cuv'    4.823512    0.063844
-   15   'Euv'    9.921366    0.835891
-   22   'Bdv'    1.029995    0.061123
-   23   'Cdv'    4.846279    0.295439
-   33   'CUbar'    7.059694    0.809144
-   34   'DUbar'    1.548098    1.096540
-   41   'ADbar'    0.268798    0.008020
-   42   'BDbar'   -0.127297    0.003628
-   43   'CDbar'    9.586246    1.448861
+   12   'Buv'    0.754313    0.025895
+   13   'Cuv'    4.944407    0.081892
+   15   'Euv'   11.487581    1.410932
+   22   'Bdv'    0.938383    0.084895
+   23   'Cdv'    4.689317    0.389127
+   33   'CUbar'    7.469599    1.312034
+   34   'DUbar'    3.542548    2.187603
+   41   'ADbar'    0.250268    0.008368
+   42   'BDbar'   -0.165150    0.004035
+   43   'CDbar'    9.424084    1.829824
 
 *call fcn 3
-*migrad 200000
-*hesse
+migrad 200000
+hesse
 set print 3
 
 return
diff --git a/src/apfel.f b/src/apfel.f
index 5d7f5a67422ead71c2c1b9eac10a752cd5c61fc0..2527633ad33a7cdc798ffa5344c99f4f094783a6 100644
--- a/src/apfel.f
+++ b/src/apfel.f
@@ -23,11 +23,10 @@
 *
       if(iTheory.eq.35)then
          call SetTheory("QUniD")                 ! Set QCD+QED evolution (default)
-         call SetPDFEvolution("exactalpha")      ! Use DGLAP evolution in terms of muF
       else
          call SetTheory("QCD")                   ! Set QCD evolution (default)
-         call SetPDFEvolution("exactalpha")      ! Use DGLAP evolution in terms of alphas (rather than muF => faster for short steps)
       endif
+      call SetPDFEvolution("exactalpha")         ! Use DGLAP evolution in terms of alphas (rather than muF => faster for short steps)
       call SetFastEvolution(.true.)              ! Use fast evolution (default)
       call SetAlphaEvolution("exact")            ! Use exact solution on the beta functions (default)
       call SetQLimits(0.5d0,20000d0)             ! Evolution limits
@@ -52,6 +51,13 @@
       endif
       call SetMassMatchingScales(kmuc,kmub,kmut)
 *
+*     Small-x resummation
+*
+      if(HF_SCHEME(9:12).eq."NLLx")then
+         call SetSmallxResummation(.true.,"NLL")
+         call SetQLimits(1.6d0,4550d0)
+      endif
+*
 *     Initialize APFEL
 *
       call InitializeAPFEL
diff --git a/src/apfel_dum.f b/src/apfel_dum.f
index e88417df09d321f8a438a0cd4942a601c36e2d5c..66a8c5f691d880fc4cbd36f22c46897b17b218ad 100644
--- a/src/apfel_dum.f
+++ b/src/apfel_dum.f
@@ -184,3 +184,11 @@ c----------------------------------------------------------
       double precision Q,HeavyQuarkMass
       call print_apfel_error_message
       end
+
+      subroutine SetSmallxResummation
+      call print_apfel_error_message
+      end
+
+      subroutine SetQLimits
+      call print_apfel_error_message
+      end
diff --git a/src/init_theory.f b/src/init_theory.f
index 6cc466bb348cb50a1e41aab43e5b043bce382dab..a7441454d230c4d1a57c818cb49371e344c2f4d8 100644
--- a/src/init_theory.f
+++ b/src/init_theory.f
@@ -1,4 +1,3 @@
-
       subroutine init_theory_modules
 *     ------------------------------------------------
 
@@ -165,7 +164,14 @@ C Q2 grid weights
       WGT_q2(2) = 1.d0
 C Basic Q2 grid:
       QARR(1) = 1.
-      QARR(2) = 2.05D8 ! needed for lhapdf grid  
+      QARR(2) = 2.05D8 ! needed for lhapdf grid
+C Reduce the Q2 interval if small-x resummation through APFEL is included.
+      if(HFSCHEME.eq.3005.or.
+     1   HFSCHEME.eq.3055.or.
+     2   HFSCHEME.eq.3555)then
+         QARR(1) = starting_scale
+         QARR(2) = 2.025D7      ! needed for lhapdf grid  
+      endif
 c      QARR(2) =  64000000.      ! enough for 8 TeV LHC.
 
 C Default sizes
@@ -1428,7 +1434,7 @@ c#include "steering.inc"
       double precision Q_ref,Alphas_ref
       character*7 Scheme
       character*5 MassScheme
-      logical runm
+      logical runm,Smallx
 *
       MCharm  = mch
       MBottom = mbt
@@ -1444,6 +1450,7 @@ c#include "steering.inc"
 *
       MassScheme = "Pole"
       runm       = .false.
+      Smallx     = .false.
       if (I_FIT_order.eq.1) then
          write(6,*) 'You have selected the FONLL scheme at LO'
          write(6,*) '*****************************************'
@@ -1466,6 +1473,11 @@ c#include "steering.inc"
             Scheme     = "FONLL-A"
             MassScheme = "MSbar"
             runm       = .true.
+         elseif(HFSCHEME.eq.3005)then
+            write(6,*) "You have selected the FONLL-A scheme",
+     1                 " with small-x resummation at NLL"
+            Scheme     = "FONLL-A"
+            Smallx     = .true.
          elseif(HFSCHEME.eq.55)then
             write(6,*) "You have selected the FONLL-B scheme",
      1                 " with poles masses"
@@ -1481,6 +1493,11 @@ c#include "steering.inc"
             Scheme     = "FONLL-B"
             MassScheme = "MSbar"
             runm       = .true.
+         elseif(HFSCHEME.eq.3055)then
+            write(6,*) "You have selected the FONLL-B scheme",
+     1                 " with small-x resummation at NLL"
+            Scheme     = "FONLL-B"
+            Smallx     = .true.
          else
             call HF_errlog(310320151, 'F: '//
      1                    'At NLO only the FONLL-A and FONLL-B '//
@@ -1502,6 +1519,11 @@ c#include "steering.inc"
             Scheme     = "FONLL-C"
             MassScheme = "MSbar"
             runm       = .true.
+         elseif(HFSCHEME.eq.3555)then
+            write(6,*) "You have selected the FONLL-C scheme",
+     1                 " with small-x resummation at NLL"
+            Scheme     = "FONLL-C"
+            Smallx     = .true.
          else
             call HF_errlog(310320152, 'F: '//
      1                    'At NNLO only the FONLL-C scheme '//
@@ -1521,9 +1543,23 @@ c#include "steering.inc"
      4                'steering.txt card.')
          endif
       endif
+*
+*     If the small-x resummation is included check that APFEL is used also
+*     for the evolution.
+*
+      if(Smallx)then
+         if(iTheory.ne.10.and.iTheory.ne.35)then
+            call HF_errlog(20102017, 'F: '//
+     1                'When using the FONLL scheme with small-x '//
+     2                'resummation, APFEL must be used for the '//
+     3                'evolution. '//
+     4                'Please set TheoryType = "DGLAP_APFEL" in the '//
+     5                'steering.txt card.')
+         endif
+      endif
 *
       call FONLL_Set_Input(MassScheme,runm,Mcharm,MBottom,MTop,
-     1                     Q_ref,Alphas_ref,PtOrder,Scheme)
+     1                     Q_ref,Alphas_ref,PtOrder,Scheme,Smallx)
 *
       return
       end
diff --git a/src/read_steer.f b/src/read_steer.f
index 5aaa19f5e0f0e9cb2f58e5afcd443045686cc83d..57660fd3f3d4f36f6ed3e3abf9a0dfddc28a5022 100644
--- a/src/read_steer.f
+++ b/src/read_steer.f
@@ -1249,18 +1249,24 @@ C---------------------------------
          HFSCHEME = 1005
       elseif (HF_SCHEME.eq.'FONLL-A RUNM ON') then
          HFSCHEME = 2005
+      elseif (HF_SCHEME.eq.'FONLL-A NLLx') then
+         HFSCHEME = 3005
       elseif (HF_SCHEME.eq.'FONLL-B') then
          HFSCHEME = 55
       elseif (HF_SCHEME.eq.'FONLL-B RUNM OFF') then
          HFSCHEME = 1055
       elseif (HF_SCHEME.eq.'FONLL-B RUNM ON') then
          HFSCHEME = 2055
+      elseif (HF_SCHEME.eq.'FONLL-B NLLx') then
+         HFSCHEME = 3055
       elseif (HF_SCHEME.eq.'FONLL-C') then
          HFSCHEME = 555
       elseif (HF_SCHEME.eq.'FONLL-C RUNM OFF') then
          HFSCHEME = 1555
       elseif (HF_SCHEME.eq.'FONLL-C RUNM ON') then
          HFSCHEME = 2555
+      elseif (HF_SCHEME.eq.'FONLL-C NLLx') then
+         HFSCHEME = 3555
       elseif (HF_SCHEME.eq.'S-ACOT Chi') then
           HFSCHEME = 17
       elseif (HF_SCHEME.eq.'S-ACOT Chi RC') then
diff --git a/steering.txt b/steering.txt
index fcd6a9eca2b5b8bc28f3c55d021b4a4ccefe2b80..ab852d87cee356bf9f12e50e6b8e4762d383ba23 100644
--- a/steering.txt
+++ b/steering.txt
@@ -7,14 +7,24 @@
  
   ! Input files:
 
-    InputFileNames(1) = 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_920.dat'
-    InputFileNames(2) = 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_820.dat'
-    InputFileNames(3) = 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_575.dat'
-    InputFileNames(4) = 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_460.dat'
-    InputFileNames(5) = 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCem.dat'
-    InputFileNames(6) = 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_CCep.dat'
-    InputFileNames(7) = 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_CCem.dat'
-
+     InputFileNames = 
+     'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_920-thexp.dat',
+     'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_820-thexp.dat',
+     'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_575-thexp.dat',
+     'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_460-thexp.dat',
+     'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCem-thexp.dat',
+     'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_CCep-thexp.dat',
+     'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_CCem-thexp.dat',
+
+     'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_920.dat',
+     'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_820.dat',
+     'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_575.dat',
+     'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_460.dat',
+     'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCem.dat',
+     'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_CCep.dat',
+     'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_CCem.dat',
+    ! 'Z0_applgrid_nnlo_reaction.dat', 'D0_Wel_pt25_asymmetry.dat'
+    ! 'datafiles/lhc/atlas/wzProduction/1203.4051/Z0_applgrid_nnlo.dat',
 
 &End
 
@@ -26,9 +36,18 @@
   !  CorrFileNames(1) = 'datafiles/hera/h1/jets/0904.3870/H1_NormInclJets_HighQ2_99-07___H1_NormInclJets_HighQ2_99-07.corr'
 &End
 
+&ReduceSyst
+    ! even with tolerance =0 the following flag may speed up calculations
+  do_reduce = .false.  ! turn-on to simplify/speedup chi2 calculation.
+    ! tolerance = 0.0 for exact calculation, > 0.0 for improved speed.
+  tolerance = 0.0
+    ! depending on blas library, toggling the following flag may improve chi2 computation speed:
+  useBlas = .false.
+&End
+
 &CovarToNuisance
    ! Global switch for using nuisance param representation for covariance mat.
-  LConvertCovToNui = .false.
+  LConvertCovToNui = .False.
 
    ! Tolerance -- zero means exact transformation
   Tolerance = 0.0
@@ -183,6 +202,7 @@
  ! Debug flag
   LDEBUG     = False
 
+
  ! Quadratic approximation for asymmetric uncertainties
  ! AsymErrorsIterations = 10
 &End