diff --git a/rfb/Configuration.cxx b/rfb/Configuration.cxx
index 048fb77..fc68210 100644
--- a/rfb/Configuration.cxx
+++ b/rfb/Configuration.cxx
@@ -67,6 +67,7 @@
         strncasecmp(current->getName(), name, len) == 0)
     {
       bool b = current->setParam(val);
+      current->setHasBeenSet(); 
       if (b && immutable)
         current->setImmutable();
       return b;
@@ -91,6 +92,7 @@
     while (current) {
       if (strcasecmp(current->getName(), config) == 0) {
         bool b = current->setParam();
+	current->setHasBeenSet(); 
         if (b && immutable)
           current->setImmutable();
         return b;
@@ -152,7 +154,7 @@
 // -=- VoidParameter
 
 VoidParameter::VoidParameter(const char* name_, const char* desc_)
-  : immutable(false), name(name_), description(desc_) {
+  : immutable(false), _hasBeenSet(false), name(name_), description(desc_) {
   _next = Configuration::head;
   Configuration::head = this;
 }
@@ -184,6 +186,16 @@
   immutable = true;
 }
 
+void
+VoidParameter::setHasBeenSet() {
+  _hasBeenSet = true;
+} 
+
+bool
+VoidParameter::hasBeenSet() {
+  return _hasBeenSet;
+}
+
 // -=- AliasParameter
 
 AliasParameter::AliasParameter(const char* name_, const char* desc_,
