diff --git a/ProcessLib/HeatConduction/Tests.cmake b/ProcessLib/HeatConduction/Tests.cmake
index 33e9933dd92f91b4dd8b9d6bfaa1b2a6b71faf63..d9d0696b0f5e9bdef89911e1852b52dc4768fd4c 100644
--- a/ProcessLib/HeatConduction/Tests.cmake
+++ b/ProcessLib/HeatConduction/Tests.cmake
@@ -273,6 +273,19 @@ AddTest(
         REQUIREMENTS NOT OGS_USE_MPI
 )
 
+# tests for line source term implementation with inclined elements
+AddTest(
+        NAME HeatConduction_2D_LineSourceTermLeft_inclined_elements
+        PATH Parabolic/T/2D_source_term_tests/line_source_term_left
+        EXECUTABLE ogs
+        EXECUTABLE_ARGS source_term_left_r.prj
+        TESTER vtkdiff
+        DIFF_DATA
+        source_term_left_r_ts_1_t_1.000000.vtu source_term_left_r_ts_1_t_1.000000.vtu temperature temperature 1e-15 0.0
+        source_term_left_r_ts_1_t_1.000000.vtu source_term_left_r_ts_1_t_1.000000.vtu heat_flux heat_flux 1e-15 0.0
+        REQUIREMENTS NOT OGS_USE_MPI
+)
+
 # For the special setup with a 'dirac' line source term at x=0.5 the
 # analytical solution in 2 dimensions is valid:
 # u(x,y) = -ln(sqrt((x-0.5)^2))/(2 * Pi)
diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/mesh_r.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/mesh_r.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..bbf7e093c3e058fa17a04a080d048cec30e4efa9
--- /dev/null
+++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/mesh_r.vtu
@@ -0,0 +1,42 @@
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64">
+  <UnstructuredGrid>
+    <Piece NumberOfPoints="22" NumberOfCells="10">
+      <PointData>
+      </PointData>
+      <CellData>
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="binary" RangeMin="0" RangeMax="10.04987562112089">
+          EAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMO39mnqDmPwAAAAAAAAAAzTt/Zp6g5r/MO39mnqD2PwAAAAAAAAAAzTt/Zp6g9r/ZbN/MdvgAQAAAAAAAAAAA2mzfzHb4AMDMO39mnqAGQAAAAAAAAAAAzTt/Zp6gBsC/Ch8AxkgMQAAAAAAAAAAAwAofAMZIDMDZbN/MdvgQQAAAAAAAAAAA2mzfzHb4EMBSVK+ZiswTQAAAAAAAAAAAU1SvmYrME8DMO39mnqAWQAAAAAAAAAAAzTt/Zp6gFsBGI08zsnQZQAAAAAAAAAAARyNPM7J0GcC/Ch8AxkgcQAAAAAAAAAAAwAofAMZIHMAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAADMO39mnqDmPwAAAAAAAPA/zTt/Zp6g5r/MO39mnqD2PwAAAAAAAPA/zTt/Zp6g9r/ZbN/MdvgAQAAAAAAAAPA/2mzfzHb4AMDMO39mnqAGQAAAAAAAAPA/zTt/Zp6gBsC/Ch8AxkgMQAAAAAAAAPA/wAofAMZIDMDZbN/MdvgQQAAAAAAAAPA/2mzfzHb4EMBSVK+ZiswTQAAAAAAAAPA/U1SvmYrME8DMO39mnqAWQAAAAAAAAPA/zTt/Zp6gFsBGI08zsnQZQAAAAAAAAPA/RyNPM7J0GcC/Ch8AxkgcQAAAAAAAAPA/wAofAMZIHMA=
+          <InformationKey name="L2_NORM_FINITE_RANGE" location="vtkDataArray" length="2">
+            <Value index="0">
+              0
+            </Value>
+            <Value index="1">
+              10.049875621
+            </Value>
+          </InformationKey>
+          <InformationKey name="L2_NORM_RANGE" location="vtkDataArray" length="2">
+            <Value index="0">
+              0
+            </Value>
+            <Value index="1">
+              10.049875621
+            </Value>
+          </InformationKey>
+        </DataArray>
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="binary" RangeMin="0" RangeMax="21">
+          QAEAAAAAAAAAAAAAAAAAAAEAAAAAAAAADAAAAAAAAAALAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAANAAAAAAAAAAwAAAAAAAAAAgAAAAAAAAADAAAAAAAAAA4AAAAAAAAADQAAAAAAAAADAAAAAAAAAAQAAAAAAAAADwAAAAAAAAAOAAAAAAAAAAQAAAAAAAAABQAAAAAAAAAQAAAAAAAAAA8AAAAAAAAABQAAAAAAAAAGAAAAAAAAABEAAAAAAAAAEAAAAAAAAAAGAAAAAAAAAAcAAAAAAAAAEgAAAAAAAAARAAAAAAAAAAcAAAAAAAAACAAAAAAAAAATAAAAAAAAABIAAAAAAAAACAAAAAAAAAAJAAAAAAAAABQAAAAAAAAAEwAAAAAAAAAJAAAAAAAAAAoAAAAAAAAAFQAAAAAAAAAUAAAAAAAAAA==
+        </DataArray>
+        <DataArray type="Int64" Name="offsets" format="binary" RangeMin="4" RangeMax="40">
+          UAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABQAAAAAAAAAGAAAAAAAAAAcAAAAAAAAACAAAAAAAAAAJAAAAAAAAAAoAAAAAAAAAA==
+        </DataArray>
+        <DataArray type="UInt8" Name="types" format="binary" RangeMin="9" RangeMax="9">
+          CgAAAAAAAAAJCQkJCQkJCQkJ
+        </DataArray>
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/mesh_r_left.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/mesh_r_left.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..1eecf443b3499a5e223255ade2876c4029e94d4a
--- /dev/null
+++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/mesh_r_left.vtu
@@ -0,0 +1,48 @@
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64">
+  <UnstructuredGrid>
+    <Piece NumberOfPoints="2" NumberOfCells="1">
+      <PointData>
+        <DataArray type="UInt64" Name="bulk_node_ids" format="binary" RangeMin="0" RangeMax="11">
+          EAAAAAAAAAALAAAAAAAAAAAAAAAAAAAA
+        </DataArray>
+      </PointData>
+      <CellData>
+        <DataArray type="UInt64" Name="bulk_element_ids" format="binary" RangeMin="0" RangeMax="0">
+          CAAAAAAAAAAAAAAAAAAAAA==
+        </DataArray>
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="binary" RangeMin="0" RangeMax="1">
+          MAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+          <InformationKey name="L2_NORM_FINITE_RANGE" location="vtkDataArray" length="2">
+            <Value index="0">
+              0
+            </Value>
+            <Value index="1">
+              1
+            </Value>
+          </InformationKey>
+          <InformationKey name="L2_NORM_RANGE" location="vtkDataArray" length="2">
+            <Value index="0">
+              0
+            </Value>
+            <Value index="1">
+              1
+            </Value>
+          </InformationKey>
+        </DataArray>
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="binary" RangeMin="0" RangeMax="1">
+          EAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA
+        </DataArray>
+        <DataArray type="Int64" Name="offsets" format="binary" RangeMin="2" RangeMax="2">
+          CAAAAAAAAAACAAAAAAAAAA==
+        </DataArray>
+        <DataArray type="UInt8" Name="types" format="binary" RangeMin="3" RangeMax="3">
+          AQAAAAAAAAAD
+        </DataArray>
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/mesh_r_right.vtu b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/mesh_r_right.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..3aa4c20bf94c45e6d82e7cb872589268daed6791
--- /dev/null
+++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/mesh_r_right.vtu
@@ -0,0 +1,48 @@
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64">
+  <UnstructuredGrid>
+    <Piece NumberOfPoints="2" NumberOfCells="1">
+      <PointData>
+        <DataArray type="UInt64" Name="bulk_node_ids" format="binary" RangeMin="10" RangeMax="21">
+          EAAAAAAAAAAVAAAAAAAAAAoAAAAAAAAA
+        </DataArray>
+      </PointData>
+      <CellData>
+        <DataArray type="UInt64" Name="bulk_element_ids" format="binary" RangeMin="9" RangeMax="9">
+          CAAAAAAAAAAJAAAAAAAAAA==
+        </DataArray>
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="binary" RangeMin="10" RangeMax="10.04987562112089">
+          MAAAAAAAAAC/Ch8AxkgcQAAAAAAAAPA/wAofAMZIHMC/Ch8AxkgcQAAAAAAAAAAAwAofAMZIHMA=
+          <InformationKey name="L2_NORM_FINITE_RANGE" location="vtkDataArray" length="2">
+            <Value index="0">
+              10
+            </Value>
+            <Value index="1">
+              10.049875621
+            </Value>
+          </InformationKey>
+          <InformationKey name="L2_NORM_RANGE" location="vtkDataArray" length="2">
+            <Value index="0">
+              10
+            </Value>
+            <Value index="1">
+              10.049875621
+            </Value>
+          </InformationKey>
+        </DataArray>
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="binary" RangeMin="0" RangeMax="1">
+          EAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA
+        </DataArray>
+        <DataArray type="Int64" Name="offsets" format="binary" RangeMin="2" RangeMax="2">
+          CAAAAAAAAAACAAAAAAAAAA==
+        </DataArray>
+        <DataArray type="UInt8" Name="types" format="binary" RangeMin="3" RangeMax="3">
+          AQAAAAAAAAAD
+        </DataArray>
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/source_term_left_r.prj b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/source_term_left_r.prj
new file mode 100644
index 0000000000000000000000000000000000000000..3d504215079be4c3c95e9283096ed4d542038e7a
--- /dev/null
+++ b/Tests/Data/Parabolic/T/2D_source_term_tests/line_source_term_left/source_term_left_r.prj
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<OpenGeoSysProject>
+    <meshes>
+        <mesh>mesh_r.vtu</mesh>
+        <mesh>mesh_r_left.vtu</mesh>
+        <mesh>mesh_r_right.vtu</mesh>
+    </meshes>
+    <processes>
+        <process>
+            <name>HeatConduction</name>
+            <type>HEAT_CONDUCTION</type>
+            <integration_order>2</integration_order>
+            <process_variables>
+                <process_variable>temperature</process_variable>
+            </process_variables>
+            <secondary_variables>
+                <secondary_variable internal_name="heat_flux" output_name="heat_flux"/>
+            </secondary_variables>
+        </process>
+    </processes>
+    <time_loop>
+        <processes>
+            <process ref="HeatConduction">
+                <nonlinear_solver>basic_picard</nonlinear_solver>
+                <convergence_criterion>
+                    <type>DeltaX</type>
+                    <norm_type>NORM2</norm_type>
+                    <abstol>1.e-6</abstol>
+                </convergence_criterion>
+                <time_discretization>
+                    <type>BackwardEuler</type>
+                </time_discretization>
+                <time_stepping>
+                    <type>FixedTimeStepping</type>
+                    <t_initial> 0.0 </t_initial>
+                    <t_end> 1 </t_end>
+                    <timesteps>
+                        <pair>
+                            <repeat>1</repeat>
+                            <delta_t>1</delta_t>
+                        </pair>
+                    </timesteps>
+                </time_stepping>
+            </process>
+        </processes>
+        <output>
+            <type>VTK</type>
+            <prefix>source_term_left_r</prefix>
+            <timesteps>
+                <pair>
+                    <repeat> 10000 </repeat>
+                    <each_steps> 1 </each_steps>
+                </pair>
+            </timesteps>
+            <variables>
+                <variable> temperature </variable>
+                <variable> heat_flux </variable>
+            </variables>
+            <suffix>_ts_{:timestep}_t_{:time}</suffix>
+        </output>
+    </time_loop>
+    <media>
+        <medium id="0">
+            <phases/>
+            <properties>
+                <property>
+                    <name>thermal_conductivity</name>
+                    <type>Constant</type>
+                    <value>1</value>
+                </property>
+                <property>
+                    <name>specific_heat_capacity</name>
+                    <type>Constant</type>
+                    <value>1</value>
+                </property>
+                <property>
+                    <name>density</name>
+                    <type>Constant</type>
+                    <value>1</value>
+                </property>
+            </properties>
+        </medium>
+    </media>
+    <parameters>
+        <parameter>
+            <name>T0</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>HeatSource</name>
+            <type>Constant</type>
+            <value>1</value>
+        </parameter>
+    </parameters>
+    <process_variables>
+        <process_variable>
+            <name>temperature</name>
+            <components>1</components>
+            <order>1</order>
+            <initial_condition>T0</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <mesh>mesh_r_right</mesh>
+                    <type>Dirichlet</type>
+                    <parameter>T0</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+            <source_terms>
+                <source_term>
+                    <mesh>mesh_r_left</mesh>
+                    <type>Line</type>
+                    <parameter>HeatSource</parameter>
+                </source_term>
+            </source_terms>
+        </process_variable>
+    </process_variables>
+    <nonlinear_solvers>
+        <nonlinear_solver>
+            <name>basic_picard</name>
+            <type>Picard</type>
+            <max_iter>10</max_iter>
+            <linear_solver>general_linear_solver</linear_solver>
+        </nonlinear_solver>
+    </nonlinear_solvers>
+    <linear_solvers>
+        <linear_solver>
+            <name>general_linear_solver</name>
+            <lis>-i cg -p jacobi -tol 1e-16 -maxiter 10000</lis>
+            <eigen>
+                <solver_type>CG</solver_type>
+                <precon_type>DIAGONAL</precon_type>
+                <max_iteration_step>10000</max_iteration_step>
+                <error_tolerance>1e-16</error_tolerance>
+            </eigen>
+            <petsc>
+                <prefix>gw</prefix>
+                <parameters>-gw_ksp_type cg -gw_pc_type bjacobi -gw_ksp_rtol 1e-16 -gw_ksp_max_it 10000</parameters>
+            </petsc>
+        </linear_solver>
+    </linear_solvers>
+</OpenGeoSysProject>