diff --git a/tests/glibmm_interface_implementation/main.cc b/tests/glibmm_interface_implementation/main.cc
index dfbb716..595a7fe 100644
--- a/tests/glibmm_interface_implementation/main.cc
+++ b/tests/glibmm_interface_implementation/main.cc
@@ -3,29 +3,34 @@
 #include <iostream>
 
 //TODO: I also tried Glib::Action, but that needs us to implement interface properties. murrayc
-class CustomConverter :
-  public Glib::Object,
-  public Gio::Converter
+class CustomAction :
+  public Gio::Action,
+  public Glib::Object
 {
 public:
-  CustomConverter();
+  CustomAction();
+
+  // A custom property.
+  Glib::Property<Glib::ustring> property;
 
 protected:
   //Implement a vfunc:
-  virtual void reset_vfunc();
+  virtual Glib::ustring get_name_vfunc() const;
 };
 
-CustomConverter::CustomConverter()
-: Glib::ObjectBase( typeid(CustomConverter) ),
-  Glib::Object()
+CustomAction::CustomAction()
+: Glib::ObjectBase( typeid(CustomAction) ),
+  Glib::Object(),
+  property(*this, "custom_property", "Initial value.")
 {
 }
 
-static bool reset_called = false;
+static bool get_name_called = false;
 
-void CustomConverter::reset_vfunc()
+Glib::ustring CustomAction::get_name_vfunc() const
 {
-  reset_called = true;
+  get_name_called = true;
+  return "custom-name";
 }
 
 
@@ -33,9 +38,25 @@ int main(int, char**)
 {
   Glib::init();
 
-  CustomConverter converter;
-  converter.reset();
-  g_assert(reset_called);
+  CustomAction action;
+  Glib::ustring name = action.get_name();
+  std::cout << "The name is '" << name << "'." << std::endl;
+  std::cout << "The name property of the implemented interface is '" << action.property_name().get_value() << "'." << std::endl;
+
+  std::cout << "The custom string property is '" << action.property.get_value() << "'." << std::endl;
+  action.property = "A new value.";
+  std::cout << "The custom string property (after changing it) is '" << action.property.get_value() << "'." << std::endl;
+
+  gchar* prop_value = 0;
+  g_object_set(action.gobj(), "custom_property", "Another value", NULL);
+  g_object_get(action.gobj(), "custom_property", &prop_value, NULL);
+
+  std::cout << "The custom property after g_object_get/set() is '" << prop_value << "'." << std::endl;
+
+  std::cout << "The custom property through the Glib::Property<> is '" << action.property.get_value() << "'." << std::endl;
+
+  std::cout << "The name property of the implemented interface is '" << action.property_name().get_value() << "'." << std::endl;
+  g_assert(get_name_called);
 
   return EXIT_SUCCESS;
 }
