diff --git a/configure.in b/configure.in
index a720f9e..633802f 100644
--- a/configure.in
+++ b/configure.in
@@ -145,6 +145,27 @@ if test "x$enable_libexif" != "xno"; then
 fi
 
 dnl ==========================================================================
+dnl libkibi checking
+
+AM_CONDITIONAL(HAVE_LIBKIBI, false)
+
+AC_ARG_ENABLE(libkibi,
+	AC_HELP_STRING([--disable-libkibi],
+			[build without libkibi support]))
+msg_libkibi=no
+if test "x$enable_libkibi" != "xno"; then
+	PKG_CHECK_MODULES(LIBKIBI, libkibi, [
+			AM_CONDITIONAL(HAVE_LIBKIBI, true)
+			AC_DEFINE(HAVE_LIBKIBI, 1, [Define to enable libkibi support])
+		]
+		msg_libkibi=yes,
+		[AM_CONDITIONAL(HAVE_LIBKIBI, false)])
+
+	AC_SUBST(LIBKIBI_CFLAGS)
+	AC_SUBST(LIBKIBI_LIBS)
+fi
+
+dnl ==========================================================================
 dnl exempi checking
 
 AM_CONDITIONAL(HAVE_EXEMPI, false)
diff --git a/libnautilus-private/Makefile.am b/libnautilus-private/Makefile.am
index 4548460..0ca6328 100644
--- a/libnautilus-private/Makefile.am
+++ b/libnautilus-private/Makefile.am
@@ -9,6 +9,7 @@ INCLUDES = 						\
 	$(BASE_CFLAGS)					\
 	$(COMMON_CFLAGS)				\
 	$(NAUTILUS_CFLAGS)				\
+	$(LIBKIBI_CFLAGS)				\
 	$(WARNING_CFLAGS)				\
 	$(DISABLE_DEPRECATED_CFLAGS)			\
 	$(TRACKER_CFLAGS)				\
@@ -39,6 +40,7 @@ libnautilus_private_la_LIBADD =		\
 	$(top_builddir)/libnautilus-extension/libnautilus-extension.la \
 	$(BASE_LIBS)			\
 	$(COMMON_LIBS)			\
+	$(LIBKIBI_LIBS)			\
 	$(NAUTILUS_LIBS)		\
 	$(NULL)
 
diff --git a/libnautilus-private/nautilus-file-operations.c b/libnautilus-private/nautilus-file-operations.c
index bb06540..56dfc40 100644
--- a/libnautilus-private/nautilus-file-operations.c
+++ b/libnautilus-private/nautilus-file-operations.c
@@ -64,6 +64,10 @@
 #include "nautilus-file-utilities.h"
 #include "nautilus-file-conflict-dialog.h"
 
+#if HAVE_LIBKIBI
+#include <kibi.h>
+#endif
+
 /* TODO: TESTING!!! */
 
 typedef struct {
diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c
index 580fdd5..4275598 100644
--- a/libnautilus-private/nautilus-file.c
+++ b/libnautilus-private/nautilus-file.c
@@ -75,6 +75,10 @@
 #define DEBUG_FLAG NAUTILUS_DEBUG_FILE
 #include <libnautilus-private/nautilus-debug.h>
 
+#if HAVE_LIBKIBI
+#include <kibi.h>
+#endif
+
 /* Time in seconds to cache getpwuid results */
 #define GETPWUID_CACHE_TIME (5*60)
 
@@ -5834,7 +5838,11 @@ nautilus_file_get_size_as_string_with_real_size (NautilusFile *file)
 		return NULL;
 	}
 
+#ifdef HAVE_LIBKIBI
+	formated = kibi_format_size_detailed (file->details->size);
+#else
 	formated = g_format_size_for_display (file->details->size);
+#endif
 	/* Do this in a separate stage so that we don't have to put G_GUINT64_FORMAT in the translated string */
 	real_size = g_strdup_printf (_("%"G_GUINT64_FORMAT), (guint64) file->details->size);
 	formated_plus_real = g_strdup_printf (_("%s (%s bytes)"), formated, real_size);
diff --git a/src/Makefile.am b/src/Makefile.am
index baba538..44fef65 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -21,6 +21,7 @@ INCLUDES =							\
 	$(NAUTILUS_CFLAGS)					\
 	$(WARNING_CFLAGS)					\
 	$(EXIF_CFLAGS)						\
+	$(LIBKIBI_CFLAGS)					\
 	$(EXEMPI_CFLAGS)                                        \
 	-DDATADIR=\""$(datadir)"\" 				\
 	-DLIBDIR=\""$(libdir)"\" 				\
@@ -41,6 +42,7 @@ LDADD =\
 	$(COMMON_LIBS) \
 	$(NAUTILUS_LIBS) \
 	$(CORE_LIBS) \
+	$(LIBKIBI_LIBS) \
 	$(EXIF_LIBS) \
 	$(EXEMPI_LIBS) \
 	$(POPT_LIBS) \
diff --git a/src/file-manager/fm-directory-view.c b/src/file-manager/fm-directory-view.c
index 0ac2d18..fb7ba66 100644
--- a/src/file-manager/fm-directory-view.c
+++ b/src/file-manager/fm-directory-view.c
@@ -79,6 +79,10 @@
 #define DEBUG_FLAG NAUTILUS_DEBUG_DIRECTORY_VIEW
 #include <libnautilus-private/nautilus-debug.h>
 
+#if HAVE_LIBKIBI
+#include <kibi.h>
+#endif
+
 /* Minimum starting update inverval */
 #define UPDATE_INTERVAL_MIN 100
 /* Maximum update interval */
diff --git a/src/file-manager/fm-properties-window.c b/src/file-manager/fm-properties-window.c
index 9c8318d..c71f27b 100644
--- a/src/file-manager/fm-properties-window.c
+++ b/src/file-manager/fm-properties-window.c
@@ -67,6 +67,10 @@
 #include <sys/mount.h>
 #endif
 
+#if HAVE_LIBKIBI
+#include <kibi.h>
+#endif
+
 #define USED_FILL_R  0.988235294
 #define USED_FILL_G  0.91372549
 #define USED_FILL_B  0.309803922
