diff --git a/Makefile b/Makefile
index e1e7753efc3d0fe597b2e77dd22ab674f479fad7..1e6b20252210edebcdb735b4cd88ce588aeafcd7 100644
--- a/Makefile
+++ b/Makefile
@@ -7,13 +7,13 @@ CXX = g++
 LD = g++
 EXPAND = lib/tmpl/expand
 
-CFLAGS := -g -Wall -pthread -iquote.obj/gen -Wno-uninitialized -levent_pthreads -O2 -DNASSERT
-#CFLAGS := -g -Wall -pthread -iquote.obj/gen -Wno-uninitialized -levent_pthreads
+#CFLAGS := -g -Wall -pthread -iquote.obj/gen -Wno-uninitialized -levent_pthreads -O2 -DNASSERT
+CFLAGS := -g -Wall -pthread -iquote.obj/gen -Wno-uninitialized -levent_pthreads
 CXXFLAGS := -g -std=c++0x -levent_pthreads
 LDFLAGS := -levent_pthreads
 ## Debian package: check
-# CHECK_CFLAGS := $(shell pkg-config --cflags check)
-# CHECK_LDFLAGS := $(shell pkg-config --cflags --libs check)
+#CHECK_CFLAGS := $(shell pkg-config --cflags check)
+#CHECK_LDFLAGS := $(shell pkg-config --cflags --libs check)
 # Debian package: libprotobuf-dev
 PROTOBUF_CFLAGS := $(shell pkg-config --cflags protobuf)
 PROTOBUF_LDFLAGS := $(shell pkg-config --cflags --libs protobuf)
@@ -26,8 +26,8 @@ LIBEVENT_LDFLAGS := $(shell pkg-config --libs libevent)
 CFLAGS += $(LIBEVENT_CFLAGS)
 LDFLAGS += $(LIBEVENT_LDFLAGS)
 # Debian package: libssl-dev
-LIBSSL_CFLAGS := $(shell pkg-config --cflags libssl)
-LIBSSL_LDFLAGS := $(shell pkg-config --libs libssl)
+LIBSSL_CFLAGS := $(shell pkg-config --cflags openssl)
+LIBSSL_LDFLAGS := $(shell pkg-config --libs openssl)
 CFLAGS += $(LIBSSL_CFLAGS)
 LDFLAGS += $(LIBSSL_LDFLAGS)
 
@@ -124,6 +124,7 @@ endef
 include lib/Rules.mk
 include replication/common/Rules.mk
 include replication/vr/Rules.mk
+include replication/ir/Rules.mk
 include store/common/Rules.mk
 include store/txnstore/Rules.mk
 include store/qwstore/Rules.mk
diff --git a/replication/common/replica.cc b/replication/common/replica.cc
index 5a6ad7ec7426a245032f00374ee8667b60aec3ea..b7da729dc97172dfe13111151b8b2fba26a00470 100644
--- a/replication/common/replica.cc
+++ b/replication/common/replica.cc
@@ -70,27 +70,6 @@ Replica::ReplicaUpcall(opnum_t opnum, const string &op, string &res)
     Debug("Upcall result: %s", res.c_str());
 }
 
-void
-Replica::Rollback(opnum_t current, opnum_t to, Log &log)
-{
-    Debug("Making rollback-upcall from " FMT_OPNUM " to " FMT_OPNUM,
-          current, to);
-
-    std::map<opnum_t, string> reqs;
-    for (opnum_t x = current; x > to; x--) {
-        reqs.insert(std::pair<opnum_t, string>(x,
-                                                log.Find(x)->request.op()));
-    }
-    
-    app->RollbackUpcall(current, to, reqs);
-}
-
-void
-Replica::Commit(opnum_t op)
-{
-    app->CommitUpcall(op);        
-}
-
 void
 Replica::UnloggedUpcall(const string &op, string &res)
 {
diff --git a/replication/common/replica.h b/replication/common/replica.h
index 966efcd241f08dc42e7492a59d26513a12ad22c0..b4466eb6b922b518af527730adde64feae9ea979 100644
--- a/replication/common/replica.h
+++ b/replication/common/replica.h
@@ -59,10 +59,6 @@ public:
     virtual void LeaderUpcall(opnum_t opnum, const string &str1, bool &replicate, string &str2) { replicate = true; str2 = str1; };
     // Invoke callback on all replicas
     virtual void ReplicaUpcall(opnum_t opnum, const string &str1, string &str2) { };
-    // Rollback callback on failed speculative operations
-    virtual void RollbackUpcall(opnum_t current, opnum_t to, const std::map<opnum_t, string> &opMap) { };
-    // Commit callback to commit speculative operations
-    virtual void CommitUpcall(opnum_t) { };
     // Invoke call back for unreplicated operations run on only one replica
     virtual void UnloggedUpcall(const string &str1, string &str2) { };
 };
@@ -79,8 +75,6 @@ protected:
     template<class MSG> void Execute(opnum_t opnum,
                                      const Request & msg,
                                      MSG &reply);
-    void Rollback(opnum_t current, opnum_t to, Log &log);
-    void Commit(opnum_t op);
     void UnloggedUpcall(const string &op, string &res);
     template<class MSG> void ExecuteUnlogged(const UnloggedRequest & msg,
                                                MSG &reply);
diff --git a/replication/vr/client.cc b/replication/vr/client.cc
index 8f68cf267b9b9294ae94a270bf88d8ca0b981d3e..72baa7a2182741643cb9e16edc53d41d05168bd8 100644
--- a/replication/vr/client.cc
+++ b/replication/vr/client.cc
@@ -185,17 +185,8 @@ VRClient::HandleReply(const TransportAddress &remote,
     PendingRequest *req = pendingRequest;
     pendingRequest = NULL;
 
-#if CLIENT_NETWORK_DELAY
-    transport->Timer(CLIENT_NETWORK_DELAY, [=]() {
-            req->continuation(req->request, msg.reply());
-            delete req;
-        });
-#else
     req->continuation(req->request, msg.reply());
     delete req;
-#endif
-
-
 }
 
 void
@@ -214,15 +205,8 @@ VRClient::HandleUnloggedReply(const TransportAddress &remote,
     PendingRequest *req = pendingUnloggedRequest;
     pendingUnloggedRequest = NULL;
     
-#if READ_AT_LEADER
-    transport->Timer(CLIENT_NETWORK_DELAY, [=]() {
-            req->continuation(req->request, msg.reply());
-            delete req;
-        });
-#else
     req->continuation(req->request, msg.reply());
     delete req;
-#endif
 }
 
 void