diff -ur libqalculate-0.9.6/configure.in libqalculate-0.9.6_patched/configure.in
--- libqalculate-0.9.6/configure.in	2007-05-18 02:08:26.000000000 -0600
+++ libqalculate-0.9.6_patched/configure.in	2008-12-10 15:24:03.000000000 -0700
@@ -91,13 +91,6 @@
 
 AC_LANG([C++])
 
-AC_PATH_CLN(1.1.0, [
-     	LIBS="$LIBS $CLN_LIBS"
-     	CPPFLAGS="$CPPFLAGS $CLN_CPPFLAGS"
-  	AC_DEFINE(HAVE_LIBCLN,1,[If CLN can be used])
-], AC_MSG_ERROR([No suitable installed version of CLN could be found.]))
-
-
 PKG_CHECK_MODULES(GLIB, [
 	glib-2.0
 	libxml-2.0 >= 2.3.8
@@ -105,6 +98,17 @@
 AC_SUBST(GLIB_CFLAGS)
 AC_SUBST(GLIB_LIBS)
 
+PKG_CHECK_MODULES(CLN, [ cln >= 1.2 ],
+                  [have_recent_cln=yes], [have_recent_cln=no])
+AC_SUBST(CLN_CPPFLAGS)
+AC_SUBST(CLN_LIBS)
+
+if test "$have_recent_cln" = "yes" ; then
+   AC_DEFINE(HAVE_RECENT_CLN, 1, [Define if CLN can be used])
+   LIBS="$LIBS $CLN_LIBS"
+   CPPFLAGS="$CPPFLAGS $CLN_CPPFLAGS"
+fi
+
 dnl  --------------------------------
 dnl | check for readline            |-----------------------------------------
 dnl  --------------------------------
diff -ur libqalculate-0.9.6/libqalculate/Calculator.cc libqalculate-0.9.6_patched/libqalculate/Calculator.cc
--- libqalculate-0.9.6/libqalculate/Calculator.cc	2007-05-18 02:08:59.000000000 -0600
+++ libqalculate-0.9.6_patched/libqalculate/Calculator.cc	2008-12-10 15:26:07.000000000 -0700
@@ -33,7 +33,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <dirent.h>
-#include <wait.h>
+#include <sys/wait.h>
 #include <queue>
 #include <glib.h>
 //#include <dlfcn.h>
diff -ur libqalculate-0.9.6/libqalculate/Number.cc libqalculate-0.9.6_patched/libqalculate/Number.cc
--- libqalculate-0.9.6/libqalculate/Number.cc	2007-05-18 02:03:22.000000000 -0600
+++ libqalculate-0.9.6_patched/libqalculate/Number.cc	2008-12-10 15:24:04.000000000 -0700
@@ -28,6 +28,7 @@
 
 using namespace cln;
 
+/*
 void cln::cl_abort() {
 	CALCULATOR->error(true, "CLN Error: see terminal output (probably too large or small floating point number)", NULL);
 	if(CALCULATOR->busy()) {
@@ -36,7 +37,7 @@
 		exit(0);
 	}
 }
-
+*/
 string printCL_I(cl_I integ, int base = 10, bool display_sign = true, BaseDisplay base_display = BASE_DISPLAY_NORMAL, bool lower_case = false) {
 	if(base == BASE_ROMAN_NUMERALS) {
 		if(!zerop(integ) && integ < 10000 && integ > -10000) {
diff -ur libqalculate-0.9.6/src/qalc.cc libqalculate-0.9.6_patched/src/qalc.cc
--- libqalculate-0.9.6/src/qalc.cc	2007-05-18 02:34:44.000000000 -0600
+++ libqalculate-0.9.6_patched/src/qalc.cc	2008-12-10 15:26:28.000000000 -0700
@@ -16,7 +16,7 @@
 #include <time.h>
 #include <pthread.h>
 #include <dirent.h>
-#include <malloc.h>
+#include <malloc/malloc.h>
 #include <stdio.h>
 #include <vector>
 #include <glib.h>

