diff --git a/libdecnumber/ChangeLog b/libdecnumber/ChangeLog
index 38b4253920545f732c363db0709198283c86e884..162b7627f2287e7434dcc88faebcbf84fb578b0b 100644
--- a/libdecnumber/ChangeLog
+++ b/libdecnumber/ChangeLog
@@ -1,3 +1,11 @@
+2007-10-31  Thiago Jung Bauermann  <bauerman@br.ibm.com>
+
+	* configure.ac: Add ADDITIONAL_OBJS variable.
+	* Makefile.in (bid_OBS): New.
+	(libdecnumber_a_OBJS): Add ADDITIONAL_OBJS, remove condition
+	on enable_decimal_float.
+	* configure: Regenerate.
+
 2007-09-10  Janis Johnson  <janis187@us.ibm.com>
 	    Ben Elliston  <bje@au.ibm.com>
 
diff --git a/libdecnumber/Makefile.in b/libdecnumber/Makefile.in
index 98ae9eac78ca9f9c48eebc923f14dcdad71cf97e..a2134dac0bca2c76b99085f0fcc3621575f174b5 100644
--- a/libdecnumber/Makefile.in
+++ b/libdecnumber/Makefile.in
@@ -50,19 +50,18 @@ libdir = @libdir@
 localedir = $(datadir)/locale
 prefix = @prefix@
 
+ADDITIONAL_OBJS = @ADDITIONAL_OBJS@
+
 enable_decimal_float= @enable_decimal_float@
 
 INCLUDES = -I$(srcdir) -I.
 
 ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS)
 
-libdecnumber_a_OBJS = decNumber.o decContext.o \
-	decimal32.o decimal64.o decimal128.o
+bid_OBJS = bid2dpd_dpd2bid.o host-ieee32.o host-ieee64.o host-ieee128.o
 
-ifeq ($(enable_decimal_float),bid)
-libdecnumber_a_OBJS+=bid2dpd_dpd2bid.o host-ieee32.o host-ieee64.o \
-	host-ieee128.o
-endif
+libdecnumber_a_OBJS = decNumber.o decContext.o \
+	decimal32.o decimal64.o decimal128.o $(ADDITIONAL_OBJS)
 
 libdecnumber_a_SOURCES = decContext.c decContext.h decDPD.h \
 	decNumber.c decNumber.h decNumberLocal.h \
diff --git a/libdecnumber/configure b/libdecnumber/configure
index a105bb01a428373c8a3aafa8c992284e90bc9670..19ece0fba0e2962c7e6a7c875b8a696c5c58e86b 100755
--- a/libdecnumber/configure
+++ b/libdecnumber/configure
@@ -311,7 +311,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS SET_MAKE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT RANLIB ac_ct_RANLIB ACLOCAL AUTOCONF AUTOHEADER WARN_CFLAGS WARN_PEDANTIC WERROR CPP EGREP MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os enable_decimal_float LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS SET_MAKE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT RANLIB ac_ct_RANLIB ACLOCAL AUTOCONF AUTOHEADER WARN_CFLAGS WARN_PEDANTIC WERROR CPP EGREP MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os enable_decimal_float ADDITIONAL_OBJS LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -7478,10 +7478,18 @@ if test x$enable_decimal_float = xyes -o x$enable_decimal_float = xno; then
   esac
 fi
 
+# If BID is being used, additional objects should be linked in.
+if test x$enable_decimal_float = xbid; then
+  ADDITIONAL_OBJS="$ADDITIONAL_OBJS \$(bid_OBJS)"
+else
+  ADDITIONAL_OBJS=
+fi
+
 echo "$as_me:$LINENO: result: $enable_decimal_float" >&5
 echo "${ECHO_T}$enable_decimal_float" >&6
 
 
+
 echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
 echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6
 if test "${ac_cv_c_bigendian+set}" = set; then
@@ -8390,6 +8398,7 @@ s,@target_cpu@,$target_cpu,;t t
 s,@target_vendor@,$target_vendor,;t t
 s,@target_os@,$target_os,;t t
 s,@enable_decimal_float@,$enable_decimal_float,;t t
+s,@ADDITIONAL_OBJS@,$ADDITIONAL_OBJS,;t t
 s,@LIBOBJS@,$LIBOBJS,;t t
 s,@LTLIBOBJS@,$LTLIBOBJS,;t t
 CEOF
diff --git a/libdecnumber/configure.ac b/libdecnumber/configure.ac
index 2a30707e85706f266f75b056e8a106c9426c950a..01eb4caf9f50215ca3e26b43cbe4fd50512c0bf7 100644
--- a/libdecnumber/configure.ac
+++ b/libdecnumber/configure.ac
@@ -113,8 +113,16 @@ if test x$enable_decimal_float = xyes -o x$enable_decimal_float = xno; then
   esac
 fi
 
+# If BID is being used, additional objects should be linked in.
+if test x$enable_decimal_float = xbid; then
+  ADDITIONAL_OBJS="$ADDITIONAL_OBJS \$(bid_OBJS)"
+else
+  ADDITIONAL_OBJS=
+fi
+
 AC_MSG_RESULT($enable_decimal_float)
 AC_SUBST(enable_decimal_float)
+AC_SUBST(ADDITIONAL_OBJS)
 
 AC_C_BIGENDIAN