diff --git a/build_configs/darwin_macports.txt b/build_configs/darwin_macports.txt
index aca42ad9d64b67d60ae60a3870cef30cf854c89d..535a2e381bd56d3281b16b61116a88dee73efc67 100644
--- a/build_configs/darwin_macports.txt
+++ b/build_configs/darwin_macports.txt
@@ -4,3 +4,4 @@ set(BOOST_ROOT "/opt/local" CACHE PATH "prefix for the boost")
 set(PYTHON_ROOT "/opt/local" CACHE PATH "prefix for python")
 set(QT_QMAKE_EXECUTABLE "/opt/local/bin/qmake-mac" CACHE PATH 
     "absolute path to qt executable")
+set(CMAKE_Fortran_FLAGS "-freal-loops" CACHE STRING "fortran compiler flags")
diff --git a/modules/bindings/pymod/tmtools.py b/modules/bindings/pymod/tmtools.py
index a9c18a7075fac99e5b96d40a209c7013360219e4..a8aae7100beb20b06ccc31264b68b121b01a17fb 100644
--- a/modules/bindings/pymod/tmtools.py
+++ b/modules/bindings/pymod/tmtools.py
@@ -69,11 +69,15 @@ def _RunTmAlign(tmalign, tmp_dir):
   if platform.system() == "Windows":
     tmalign_path=settings.Locate('tmalign.exe', explicit_file_name=tmalign)
     command="\"%s\" %s %s" %(os.path.normpath(tmalign_path), model1_filename, model2_filename)
+    command=command+" > "+tmp_dir+"/tmalign_output"
   else:
     tmalign_path=settings.Locate('tmalign', explicit_file_name=tmalign)  
     command="%s '%s' '%s'" %(tmalign_path, model1_filename, model2_filename)
-  ps=subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
-  lines=ps.stdout.readlines()
+    command=command+" > "+tmp_dir+"/tmalign_output"
+  ps=subprocess.call(command, shell=True, stdout=subprocess.PIPE)
+  tmalign_f=open(tmp_dir+"/tmalign_output","r")
+  lines=tmalign_f.readlines()
+  tmalign_f.close()
   if (len(lines))<22:
     raise RuntimeError("tmalign superposition failed")
   return _ParseTmAlign(lines)
@@ -113,11 +117,15 @@ def _RunTmScore(tmscore, tmp_dir):
   if platform.system() == "Windows":
     tmscore_path=settings.Locate('tmscore.exe', explicit_file_name=tmscore)
     command="\"%s\" %s %s" %(os.path.normpath(tmscore_path), model1_filename, model2_filename)
+    command=command+" > "+tmp_dir+"/tmscore_output"
   else:
     tmscore_path=settings.Locate('tmscore', explicit_file_name=tmscore)
     command="%s '%s' '%s'" %(tmscore_path, model1_filename, model2_filename)
+    command=command+" > "+tmp_dir+"/tmscore_output"
   ps=subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
-  lines=ps.stdout.readlines()
+  tmscore_f=open(tmp_dir+"/tmscore_output","r")
+  lines=tmscore_f.readlines()
+  tmscore_f.close()
   if (len(lines))<22:
     raise RuntimeError("tmscore superposition failed")
   return _ParseTmScore(lines)
@@ -139,4 +147,4 @@ def TMScore(model1, model2, tmscore=None):
   result=_RunTmScore(tmscore, tmp_dir_name)
   model1.handle.RequestXCSEditor().ApplyTransform(result.transform)  
   _CleanupFiles(tmp_dir_name)
-  return result
\ No newline at end of file
+  return result