diff --git a/source/common/runoptions.F90 b/source/common/runoptions.F90
index bb874a85c8d5a3210a6417f7178fbf5c1540137e..4d3e4ae03d0eecc5d8cb22766110b8a796ded479 100644
--- a/source/common/runoptions.F90
+++ b/source/common/runoptions.F90
@@ -124,6 +124,7 @@ module mod_runoptions
   logical :: write_angles_alliter= .false.             !! write out noncollinear angles for all iterations
   logical :: write_tmat_all= .false.                   !! write out the tmat for all atoms and energies
   logical :: write_double_precision= .false.           !! write out kkrflex files in double precision
+  logical :: soc_no_spinflip= .false.                  !! set spin-flip components of the SOC Hamiltonian to zero
 
   !some old run and test options have been removed:
   !  'atptshft': replaced by presence or absence of IVSHIFT in inputcard
@@ -251,6 +252,7 @@ module mod_runoptions
     call set_runoption(write_double_precision        , '<write_double_precision>')
     call set_runoption(calc_onsite_only              , '<calc_onsite_only>')
     call set_runoption(use_gmat_unity                , '<use_gmat_unity>')
+    call set_runoption(soc_no_spinflip               , '<soc_no_spinflip>')
 
   end subroutine read_runoptions
 
@@ -799,6 +801,7 @@ module mod_runoptions
     call mpi_bcast(write_double_precision        , 1, mpi_logical, master, mpi_comm_world, ierr)
     call mpi_bcast(calc_onsite_only              , 1, mpi_logical, master, mpi_comm_world, ierr)
     call mpi_bcast(use_gmat_unity                , 1, mpi_logical, master, mpi_comm_world, ierr)
+    call mpi_bcast(soc_no_spinflip               , 1, mpi_logical, master, mpi_comm_world, ierr)
 
   end subroutine bcast_runoptions
 #endif
@@ -919,6 +922,7 @@ module mod_runoptions
     write(iounit, '(A35,1x,1L,3x,A)') '<write_double_precision>=', write_double_precision, "write out kkrflex files in double precision"
     write(iounit, '(A35,1x,1L,3x,A)') '<calc_onsite_only>=', calc_onsite_only, "calculate not the full Green function for the density but take the onsite part alone"
     write(iounit, '(A35,1x,1L,3x,A)') '<use_gmat_unity>=', use_gmat_unity, "set the structural GF to the unity matrix for test purposes"
+    write(iounit, '(A35,1x,1L,3x,A)') '<soc_no_spinflip>=', soc_no_spinflip, "set spin-flip components of the SOC Hamiltonian to zero"
 
   end subroutine print_runoptions
 
diff --git a/source/common/spinorbit_ham.f90 b/source/common/spinorbit_ham.f90
index 5f08e33e34a5825191d5e683c9d7718883a519c2..a167ecda159167f72e1e76bb7bf189b6b63500ef 100644
--- a/source/common/spinorbit_ham.f90
+++ b/source/common/spinorbit_ham.f90
@@ -33,7 +33,7 @@ contains
 
     use :: mod_datatypes, only: dp
     use :: mod_constants, only: czero
-    use :: mod_runoptions, only: set_cheby_nosoc, decouple_spin_cheby
+    use :: mod_runoptions, only: set_cheby_nosoc, decouple_spin_cheby, soc_no_spinflip
     use :: mod_cheb, only: getclambdacinv
     use :: mod_spin_orbit_compl, only: spin_orbit_compl
     use :: mod_rotatespinframe, only: rotatematrix
@@ -134,6 +134,13 @@ contains
       ! do nothing
     end if
 
+    ! test option that deactivates the spin-flip terms of the SOC Hamiltonian
+    if (soc_no_spinflip) then
+      ! set off-diagonal lm blocks in spin space to zero
+      lsmh(1+lmmaxd:2*lmmaxd, 1:lmmaxd) = czero
+      lsmh(1:lmmaxd, 1+lmmaxd:2*lmmaxd) = czero
+    end if
+
     ! contruct prefactor of spin-orbit hamiltonian
     hsofac = 0e0_dp
     vnspll1 = (0e0_dp, 0e0_dp)