diff --git a/src/main/java/net/onrc/onos/util/GraphDBConnection.java b/src/main/java/net/onrc/onos/util/GraphDBConnection.java
index 01b22ae..78f26ea 100644
--- a/src/main/java/net/onrc/onos/util/GraphDBConnection.java
+++ b/src/main/java/net/onrc/onos/util/GraphDBConnection.java
@@ -8,6 +8,7 @@
 import com.esotericsoftware.minlog.Log;
 import com.thinkaurelius.titan.core.TitanFactory;
 import com.thinkaurelius.titan.core.TitanGraph;
+import com.tinkerpop.blueprints.TransactionalGraph;
 import com.tinkerpop.blueprints.Vertex;
 import com.tinkerpop.blueprints.TransactionalGraph.Conclusion;
 import com.tinkerpop.blueprints.util.wrappers.event.EventGraph;
@@ -25,6 +26,12 @@
 		TRUE,
 		FALSE
 	}
+	class TransactionHandle {
+		protected TransactionalGraph tr;
+		public void create() {
+			tr = graph.startTransaction();			
+		}
+	}
 	protected static Logger log = LoggerFactory.getLogger(GraphDBConnection.class);
 	private static GraphDBConnection singleton = new GraphDBConnection( );
 	private static TitanGraph graph;
@@ -110,17 +117,35 @@
 	   
 	   public void startTx() {
 		   
+		   
 	   }
 	   
 	   public void endTx(Transaction tx) {
 		   switch (tx) {
 		   case COMMIT:
-			   eg.stopTransaction(Conclusion.SUCCESS);
+			   graph.stopTransaction(Conclusion.SUCCESS);
 		   case ROLLBACK:
-			   eg.stopTransaction(Conclusion.FAILURE);
+			   graph.stopTransaction(Conclusion.FAILURE);
 		   }
 	   }
 	   
+	   public void endTx(TransactionHandle tr, Transaction tx) {
+		   switch (tx) {
+		   case COMMIT:
+			   if (tr != null && tr.tr != null) {
+				   tr.tr.stopTransaction(Conclusion.SUCCESS);
+			   } else {
+				   graph.stopTransaction(Conclusion.SUCCESS);
+			   }
+		   case ROLLBACK:
+			   if (tr != null && tr.tr != null) {
+				   tr.tr.stopTransaction(Conclusion.FAILURE);
+			   } else {
+				   graph.stopTransaction(Conclusion.FAILURE);
+			   }
+		   }
+	   }   
+	   
 	   public void endTx(Transaction tx, GenerateEvent fire) {
 
 		   try {
