diff --git a/web/measurement_get_per_flow_install_time.py b/web/measurement_get_per_flow_install_time.py
new file mode 100755
index 0000000..bf2bcc7
--- /dev/null
+++ b/web/measurement_get_per_flow_install_time.py
@@ -0,0 +1,61 @@
+#! /usr/bin/env python
+# -*- Mode: python; py-indent-offset: 4; tab-width: 8; indent-tabs-mode: t; -*-
+
+import pprint
+import os
+import sys
+import subprocess
+import json
+import argparse
+import io
+import time
+
+from flask import Flask, json, Response, render_template, make_response, request
+
+#
+# TODO: remove this! We don't use JSON argument here!
+# curl http://127.0.0.1:8080/wm/flow/delete/{"value":"0xf"}/json'
+#
+
+## Global Var ##
+ControllerIP="127.0.0.1"
+ControllerPort=8080
+
+DEBUG=0
+pp = pprint.PrettyPrinter(indent=4)
+
+app = Flask(__name__)
+
+## Worker Functions ##
+def log_error(txt):
+  print '%s' % (txt)
+
+def debug(txt):
+  if DEBUG:
+    print '%s' % (txt)
+
+# @app.route("/wm/flow/measurement-get-per-flow-install-time/json")
+def measurement_get_per_flow_install_time():
+  command = "curl -s \"http://%s:%s/wm/flow/measurement-get-per-flow-install-time/json\"" % (ControllerIP, ControllerPort)
+  debug("measurement_get_per_flow_install_time %s" % command)
+  result = os.popen(command).read()
+  print '%s' % (result)
+  # parsedResult = json.loads(result)
+  # debug("parsed %s" % parsedResult)
+
+if __name__ == "__main__":
+  usage_msg = "Get the measured time per flow to install each stored flow path\n"
+  usage_msg = usage_msg + "Usage: %s\n" % (sys.argv[0])
+  usage_msg = usage_msg + "\n"
+
+  # app.debug = False;
+
+  # Usage info
+  if len(sys.argv) > 1 and (sys.argv[1] == "-h" or sys.argv[1] == "--help"):
+    print(usage_msg)
+    exit(0)
+
+  # Check arguments
+
+  # Do the work
+  measurement_get_per_flow_install_time()
diff --git a/web/measurement_run.py b/web/measurement_run.py
index 6a44512..80d0517 100755
--- a/web/measurement_run.py
+++ b/web/measurement_run.py
@@ -6,21 +6,18 @@
 import subprocess
 import time
 
-threads_n = [1, 2, 3, 4, 5, 10, 20, 30, 40, 50, 100]
-# threads_n = [1]
-# flows_n = [42, 252, 420, 1008]
-# flow_n = 42
-# flow_n = 1008
-flow_n = 252
-# flow_n = 1
+# flow_n = 252
+# threads_n = [1, 2, 3, 4, 5, 10, 20, 30, 40, 50, 100]
+# iterations_n = 10
+
+flow_n = 1
+threads_n = [1]
 iterations_n = 10
 # iterations_n = 100
 
-# threads_n = [1]
-# flowdef_filename = "web/flowdef_8node_1008.txt"
-# flowdef_filename = "web/flowdef_8node_252.txt"
-# flowdef_filename = "web/flowdef_8node_42.txt"
-# flowdef_filename = "web/flowdef_8node_1.txt"
+# flow_n = 42
+# flow_n = 420
+# flow_n = 1008
 
 def run_command(cmd):
     """
@@ -50,10 +47,16 @@
     # Get the measurement data and print it
     cmd = "web/measurement_get_install_paths_time_nsec.py"
     r = run_command(cmd)		# Tuple: [<stdout>, <stderr>]
-    res = r[0].split()		# Tuple: [<num>, nsec]
+    res = r[0].split()			# Tuple: [<num>, nsec]
     nsec_str = res[0]
     msec = float(nsec_str) / (1000 * 1000)
 
+    # Get the measurement data and print it
+    cmd = "web/measurement_get_per_flow_install_time.py"
+    r = run_command(cmd)		# Tuple: [<stdout>, <stderr>]
+    res = r[0]
+    print res
+
     # Keep checking until all Flow Paths are installed
     while True:
 	# time.sleep(3)
