diff --git a/gen-assemble-fcts.sh b/gen-assemble-fcts.sh
index e9b1eecbce55d53ee8638897071a550857ee7867..547e997cd0a849f811090a052651ae65603d9a28 100755
--- a/gen-assemble-fcts.sh
+++ b/gen-assemble-fcts.sh
@@ -9,25 +9,27 @@
 # time. So we generate different files for different flavours of
 # block-matrices.
 
-if test "$#" -eq 4
+if test "$#" -eq 5
 then
-    DST_DOWB_ST=$1
-    SRC_DOWB_ST=$1
-    LALT_DOWB_ST=$2
-    LB_DOWB_ST=$3
-    C_DOWB_ST=$4
-elif test "$#" -eq 2
-then
-    DST_DOWB_ST=$1
+    top_srcdir=$1
+    DST_DOWB_ST=$2
     SRC_DOWB_ST=$2
-    LALT_DOWB_ST=$2
-    LB_DOWB_ST=$2
-    C_DOWB_ST=$2
+    LALT_DOWB_ST=$3
+    LB_DOWB_ST=$4
+    C_DOWB_ST=$5
+elif test "$#" -eq 3
+then
+    top_srcdir=$1
+    DST_DOWB_ST=$2
+    SRC_DOWB_ST=$3
+    LALT_DOWB_ST=$3
+    LB_DOWB_ST=$3
+    C_DOWB_ST=$3
 else
     exec 1>&2
-    echo $0 DST_TYPE SRC_TYPE
+    echo $0 TOP_SRCDIR DST_TYPE SRC_TYPE
     echo *** or ***
-    echo $0 DST_TYPE LALt_TYPE LB_TYPE C_TYPE
+    echo $0 TOP_SRCDIR DST_TYPE LALt_TYPE LB_TYPE C_TYPE
     exit 1
 fi
 
@@ -95,5 +97,6 @@ for target in DST SRC LALT LB C; do
 	;;
     esac
 done
+SED_STRING="${SED_STRING} -e 's|@top_srcdir@|${top_srcdir}|g'"
 eval sed ${SED_STRING}