Index: src/demo/Makefile.am
===================================================================
--- src/demo/Makefile.am	(revision 1296)
+++ src/demo/Makefile.am	(revision 1322)
@@ -1,4 +1,4 @@
 AM_CPPFLAGS = -I$(top_srcdir)/src
-
+LDADD = $(top_builddir)/src/lemon/libemon.la -lglpk
 EXTRA_DIST = sub_graph_wrapper_demo.dim
 
@@ -6,11 +6,15 @@
 			sub_graph_wrapper_demo 				\
 			graph_to_eps_demo 				\
+			lp_demo                                         \
 			dim_to_lgf
 
 dim_to_dot_SOURCES = dim_to_dot.cc
 
-sub_graph_wrapper_demo_SOURCES = sub_graph_wrapper_demo.cc tight_edge_filter_map.h
+sub_graph_wrapper_demo_SOURCES = sub_graph_wrapper_demo.cc \
+	tight_edge_filter_map.h
 
 graph_to_eps_demo_SOURCES = graph_to_eps_demo.cc
 
+lp_demo_SOURCES = lp_demo.cc
+
 dim_to_lgf_SOURCES = dim_to_lgf.cc
Index: src/demo/lp_demo.cc
===================================================================
--- src/demo/lp_demo.cc	(revision 1309)
+++ src/demo/lp_demo.cc	(revision 1322)
@@ -38,8 +38,8 @@
     lp.setObj(ex);
   }
-
+  lp.max();
   lp.solve();
 
-  return 0;
+  return lp.primalValue();
 }
 
@@ -49,13 +49,18 @@
 
   ListGraph g;
-  ListGraph::Node s=g.addNode();
-  ListGraph::Node t=g.addNode();
+  ListGraph::Node s;
+  ListGraph::Node t;
+  
 
   ListGraph::EdgeMap<double> cap(g);
   
   GraphReader<ListGraph> reader(std::cin,g);
-  reader.addEdgeMap("capacity",cap).run();
+  reader.addNode("source",s).addNode("target",t)
+    .addEdgeMap("capacity",cap).run();
   
-  maxFlow(g,cap,s,t);
+  // std::ifstream file("../test/preflow_");
+//   readDimacs(file, g, cap, s, t);
+
+  std::cout << "Max flow value = " << maxFlow(g,cap,s,t) << std::endl;
 
 }
