diff --git a/mex/build/octave/configure.ac b/mex/build/octave/configure.ac
index 000857eda685b930a457004d428170d4cb6436a2..dffbe601c1ed259c234660c6a0c5dae0e45b6003 100644
--- a/mex/build/octave/configure.ac
+++ b/mex/build/octave/configure.ac
@@ -28,7 +28,7 @@ test "$MKOCTFILE" = no && AC_MSG_ERROR([Octave cannot be found])
 CC=$($MKOCTFILE -p CC)
 CXX=$($MKOCTFILE -p CXX)
 CFLAGS="$($MKOCTFILE -p CFLAGS) -Wall -Wno-parentheses"
-FCFLAGS="-g -O2 -Wall"
+FCFLAGS="$($MKOCTFILE -p FFLAGS) -Wall -std=gnu" # Override -std=legacy that is in FFLAGS in Octave 5
 FFLAGS="$($MKOCTFILE -p FFLAGS) -Wall"
 CXXFLAGS="$($MKOCTFILE -p CXXFLAGS) -Wall -Wno-parentheses -Wold-style-cast"
 LDFLAGS="$($MKOCTFILE -p LFLAGS) $($MKOCTFILE -p LDFLAGS)"
diff --git a/mex/build/octave/mex.am b/mex/build/octave/mex.am
index 14924d268d06c5fd8c8de198314cd659a978301d..77eccb3e7df62bc644d46f4e619ef933dc10b922 100644
--- a/mex/build/octave/mex.am
+++ b/mex/build/octave/mex.am
@@ -7,9 +7,9 @@ DEFS += -DMEXEXT=\".mex\"
 
 AM_CFLAGS = $(shell $(MKOCTFILE) -p CPICFLAG)
 AM_FFLAGS = $(shell $(MKOCTFILE) -p FPICFLAG)
-AM_FCFLAGS = -fPIC
+AM_FCFLAGS = $(shell $(MKOCTFILE) -p FPICFLAG)
 AM_CXXFLAGS = $(shell $(MKOCTFILE) -p CXXPICFLAG)
-AM_LDFLAGS = $(shell $(MKOCTFILE) -p DL_LDFLAGS)
+AM_LDFLAGS = $(shell $(MKOCTFILE) -p DL_LDFLAGS) -L"$(shell $(MKOCTFILE) -p OCTLIBDIR)"
 
 LIBS += $(shell $(MKOCTFILE) -p OCTAVE_LIBS)
 LIBS += $(shell $(MKOCTFILE) -p BLAS_LIBS)