diff --git a/src/Sound/fg_sound.cxx b/src/Sound/fg_sound.cxx
index 8890d796e..4de3ed0e4 100644
--- a/src/Sound/fg_sound.cxx
+++ b/src/Sound/fg_sound.cxx
@@ -62,12 +62,12 @@ static const struct {
 };
 
 FGSound::FGSound()
-  : _condition(NULL),
+  : _sample(NULL),
+    _condition(NULL),
     _property(NULL),
-    _sample(NULL),
-    _mode(FGSound::ONCE),
     _prev_value(0),
-    _name("")
+    _name(""),
+    _mode(FGSound::ONCE)    
 {
 }
 
@@ -263,7 +263,7 @@ FGSound::update (double dt)
 
    if (							// Lisp, anyone?
          (_condition && !_condition->test()) ||
-         (_property &&
+         (_property && !_condition &&
             (
                !curr_value ||
                ( (_mode == FGSound::IN_TRANSIT) && (curr_value == _prev_value) )