diff --git a/boost-dbus/test/message.cpp b/boost-dbus/test/message.cpp
new file mode 100644
index 0000000..d591f61
--- /dev/null
+++ b/boost-dbus/test/message.cpp
@@ -0,0 +1,62 @@
+// Copyright (c) Benjamin Kietzman (github.com/bkietz)
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#include <dbus/error.hpp>
+#include <dbus/connection.hpp>
+#include <dbus/endpoint.hpp>
+#include <dbus/filter.hpp>
+#include <dbus/match.hpp>
+#include <dbus/message.hpp>
+#include <gtest/gtest.h>
+
+TEST(MessageTest, CallMessage) {
+  const dbus::message m =
+      dbus::message::new_call(dbus::endpoint("org.freedesktop.Avahi", "/",
+                                             "org.freedesktop.Avahi.Server"),
+                              "GetHostName");
+
+  ASSERT_EQ("org.freedesktop.Avahi", m.get_destination());
+  ASSERT_EQ("/", m.get_path());
+  ASSERT_EQ("org.freedesktop.Avahi.Server", m.get_interface());
+  ASSERT_EQ("GetHostName", m.get_member());
+
+  dbus::message m2 =
+      dbus::message::new_call(dbus::endpoint("org.freedesktop.Avahi", "/",
+                                             "org.freedesktop.Avahi.Server"),
+                              "GetHostName");
+
+  m2 << 1;
+  int i;
+  m2 >> i;
+  ASSERT_EQ(i, 1);
+
+  // m.get_sender();
+}
+
+// I actually don't know what to do with these yet.
+/*
+TEST(MessageTest, ErrorMessage)
+{
+
+  dbus::message m = dbus::message::new_call(
+    dbus::endpoint(
+      "org.freedesktop.Avahi",
+      "/",
+      "org.freedesktop.Avahi.Server"),
+    "GetHostName");
+
+  m.set_reply_serial(42);
+  m.set_serial(43);
+
+  dbus::message em = dbus::message::new_error(
+    m,
+    "com.skizizo.NoHostname",
+    "No hostname for you!");
+
+  const error e(em);
+
+  e.throw_if_set();
+}
+*/
