Index: Modules/environment.f90
===================================================================
--- Modules/environment.f90	(revision 13949)
+++ Modules/environment.f90	(working copy)
@@ -172,7 +172,8 @@
          &/5X,"for quantum simulation of materials; please cite",   &
          &/9X,"""P. Giannozzi et al., J. Phys.:Condens. Matter 21 ",&
          &    "395502 (2009);", &
-         &/9X,"""P. Giannozzi et al., http://arxiv.org/abs/1709.10010;", &
+         &/9X,"""P. Giannozzi et al., J. Phys.:Condens. Matter 29 ",&
+         &    "465901 (2017);", &
          &/9X," URL http://www.quantum-espresso.org"", ", &
          &/5X,"in publications or presentations arising from this work. More details at",&
          &/5x,"http://www.quantum-espresso.org/quote")' )
Index: Modules/fd_gradient.f90
===================================================================
--- Modules/fd_gradient.f90	(revision 13949)
+++ Modules/fd_gradient.f90	(working copy)
@@ -43,11 +43,11 @@
   INTEGER :: idx, j0, k0, i, ir, ir_end, ipol, in
   INTEGER :: ix(-nfdpoint:nfdpoint),iy(-nfdpoint:nfdpoint),iz(-nfdpoint:nfdpoint)
   INTEGER :: ixc, iyc, izc, ixp, ixm, iyp, iym, izp, izm
-  REAL( DP ), DIMENSION( :, : ), ALLOCATABLE :: gradtmp
+  REAL( DP ), DIMENSION( :, : ), ALLOCATABLE :: gradtmp, gradaux
   !
   grad = 0.D0
   !
-  ALLOCATE( gradtmp( 3, dfftp%nr1x*dfftp%nr2x*dfftp%nr3x ) )
+  ALLOCATE( gradtmp( dfftp%nr1x*dfftp%nr2x*dfftp%nr3x, 3 ) )
   gradtmp = 0.D0
   !
 #if defined (__MPI)
@@ -89,29 +89,32 @@
     !
     DO in = -nfdpoint, nfdpoint
       i = ix(in) + iy(0) * dfftp%nr1x + iz(0) * dfftp%nr1x * dfftp%nr2x + 1
-      gradtmp(1,i) = gradtmp(1,i) - icfd(in)*f(ir)*dfftp%nr1
+      gradtmp(i,1) = gradtmp(i,1) - icfd(in)*f(ir)*dfftp%nr1
       i = ix(0) + iy(in) * dfftp%nr1x + iz(0) * dfftp%nr1x * dfftp%nr2x + 1
-      gradtmp(2,i) = gradtmp(2,i) - icfd(in)*f(ir)*dfftp%nr2
+      gradtmp(i,2) = gradtmp(i,2) - icfd(in)*f(ir)*dfftp%nr2
       i = ix(0) + iy(0) * dfftp%nr1x + iz(in) * dfftp%nr1x * dfftp%nr2x + 1
-      gradtmp(3,i) = gradtmp(3,i) - icfd(in)*f(ir)*dfftp%nr3
+      gradtmp(i,3) = gradtmp(i,3) - icfd(in)*f(ir)*dfftp%nr3
     ENDDO
     !
   ENDDO
   !
+  ALLOCATE( gradaux(nnr,3) )
 #if defined (__MPI)
   DO ipol = 1, 3
-    CALL mp_sum( gradtmp(ipol,:), intra_bgrp_comm )
-    CALL scatter_grid ( dfftp, gradtmp(ipol,:), grad(ipol,:) )
+    CALL mp_sum( gradtmp(:,ipol), intra_bgrp_comm )
+    CALL scatter_grid ( dfftp, gradtmp(:,ipol), gradaux(:,ipol) )
   ENDDO
 #else
-  grad = gradtmp
+  gradaux(1:nnr,:) = gradtmp(1:nnr,:)
 #endif
   !
   DEALLOCATE( gradtmp )
   !
   DO ir = 1,nnr
-    grad(:,ir) = MATMUL( bg, grad(:,ir) )
+    grad(:,ir) = MATMUL( bg, gradaux(ir,:) )
   ENDDO
+  DEALLOCATE( gradaux )
+  !
   grad = grad / DBLE(ncfd) / alat
   !
   RETURN
Index: PW/src/exx.f90
===================================================================
--- PW/src/exx.f90	(revision 13949)
+++ PW/src/exx.f90	(working copy)
@@ -351,12 +351,14 @@
     INTEGER :: ig
     REAL(dp) :: gx, gy, gz
     !
-    DEALLOCATE(xkq_collect,index_xk,index_sym)
+    IF (ALLOCATED(xkq_collect))  DEALLOCATE(xkq_collect)
+    IF (ALLOCATED(index_xk))     DEALLOCATE(index_xk)
+    IF (ALLOCATED(index_sym))    DEALLOCATE(index_sym)
     exx_grid_initialized = .false.
     nkqs = 0
     CALL exx_grid_init()
     !
-    DEALLOCATE(working_pool)
+    IF (ALLOCATED(working_pool)) DEALLOCATE(working_pool)
     CALL exx_mp_init()
     !
     ! ... scale g-vectors
Index: TDDFPT/src/lr_read_wf.f90
===================================================================
--- TDDFPT/src/lr_read_wf.f90	(revision 13949)
+++ TDDFPT/src/lr_read_wf.f90	(working copy)
@@ -16,6 +16,7 @@
   ! Modified by Xiaochuan Ge (2013) to fix some bugs of virt_read and include Davidson
   !
   USE kinds,                ONLY : dp
+  USE cell_base,            ONLY : at
   USE io_global,            ONLY : stdout
   USE klist,                ONLY : nks, xk, ngk, igk_k
   USE gvect,                ONLY : ngm, g
@@ -38,7 +39,7 @@
                                  & fwfft_orbital_gamma, calbec_rs_gamma,&
                                  & add_vuspsir_gamma, v_loc_psir,&
                                  & s_psir_gamma, real_space_debug
-  USE exx,                  ONLY : exx_grid_init, exx_div_check, exx_restart
+  USE exx,                  ONLY : exx_grid_reinit, exx_div_check, exx_restart
   USE funct,                ONLY : dft_is_hybrid
   USE lr_exx_kernel,        ONLY : lr_exx_revc0_init, lr_exx_alloc
   USE wavefunctions_module, ONLY : evc
@@ -73,7 +74,7 @@
      !
      CALL open_buffer ( iunwfc, 'wfc', nwordwfc, io_level, exst ) 
      !
-     CALL exx_grid_init()
+     CALL exx_grid_reinit(at)
      CALL exx_div_check()
      !
      ! set_ace=.false. disables Lin Lin's ACE for TD-DFPT 
Index: dev-tools/release.sh
===================================================================
--- dev-tools/release.sh	(revision 13949)
+++ dev-tools/release.sh	(working copy)
@@ -1,7 +1,7 @@
 #!/bin/sh -x
 
 version=6.2
-revision=13904
+revision=13949
 user=giannozz
 tempdir=$HOME/tempdir
 
@@ -12,10 +12,10 @@
 # work in $tempdir/qe-$version
 cd $tempdir
 
-# Get the svn copy via tag
-# svn checkout http://qeforge.qe-forge.org/svn/q-e/tags/QE-$version/espresso qe-$version
+# Get the svn copy via tag (or branch)
+svn checkout svn+ssh://qeforge.qe-forge.org/svnroot/q-e/branches/QE-$version qe-$version
 # -OR- get the svn copy via revision checkout
-svn checkout -r$revision svn+ssh://$user@qeforge.qe-forge.org/svnroot/q-e/trunk/espresso qe-$version
+#svn checkout -r$revision svn+ssh://$user@qeforge.qe-forge.org/svnroot/q-e/trunk/espresso qe-$version
 cd qe-$version
 
 # Following operations require make.inc and svn files
