diff --git a/.cproject b/.cproject
index 08625e0dd..2698ef3ac 100644
--- a/.cproject
+++ b/.cproject
@@ -521,10 +521,10 @@
true
true
-
+
make
-testIncremental.run
+testNonlinearConstraint.run
true
true
true
diff --git a/cpp/Makefile.am b/cpp/Makefile.am
index 847243aee..da712d7d9 100644
--- a/cpp/Makefile.am
+++ b/cpp/Makefile.am
@@ -115,9 +115,12 @@ headers += NonlinearFactorGraph.h NonlinearFactorGraph-inl.h
headers += NonlinearOptimizer.h NonlinearOptimizer-inl.h
sources += NonlinearFactor.cpp
sources += NonlinearEquality.h
-check_PROGRAMS += testNonlinearFactor testNonlinearFactorGraph testNonlinearOptimizer testNonlinearEquality testSQP
+sources += NonlinearConstraint.h
+check_PROGRAMS += testNonlinearFactor testNonlinearFactorGraph testNonlinearOptimizer testNonlinearEquality testSQP testNonlinearConstraint
testNonlinearFactor_SOURCES = $(example) testNonlinearFactor.cpp
testNonlinearFactor_LDADD = libgtsam.la
+testNonlinearConstraint_SOURCES = $(example) testNonlinearConstraint.cpp
+testNonlinearConstraint_LDADD = libgtsam.la
testNonlinearFactorGraph_SOURCES = $(example) testNonlinearFactorGraph.cpp
testNonlinearFactorGraph_LDADD = libgtsam.la
testNonlinearOptimizer_SOURCES = $(example) testNonlinearOptimizer.cpp
diff --git a/cpp/NonlinearConstraint.h b/cpp/NonlinearConstraint.h
new file mode 100644
index 000000000..0325e96c7
--- /dev/null
+++ b/cpp/NonlinearConstraint.h
@@ -0,0 +1,224 @@
+/*
+ * @file NonlinearConstraint.h
+ * @brief Implements nonlinear constraints that can be linearized and
+ * inserted into an existing nonlinear graph and solved via SQP
+ * @author Alex Cunningham
+ */
+
+#pragma once
+
+#include