--- src/Network/generic org.cxx	2007-11-17 00:37:46.000000000 -0800
+++ src/Network/generic.cxx	2008-04-23 23:20:44.000000000 -0700
@@ -111,7 +111,7 @@
             }
             break;
 
-        case FG_DOUBLE:
+        case FG_FLOAT:
             val = _out_message[i].offset +
                 _out_message[i].prop->getFloatValue() * _out_message[i].factor;
             if (binary_mode) {
@@ -120,6 +120,17 @@
             } else {
                 snprintf(tmp, 255, _out_message[i].format.c_str(), (float)val);
             }
+            break;        
+            
+		case FG_DOUBLE:
+            val = _out_message[i].offset +
+                _out_message[i].prop->getDoubleValue() * _out_message[i].factor;
+            if (binary_mode) {
+                *((double*)&buf[length]) = val;
+                length += sizeof(double);
+            } else {
+                snprintf(tmp, 255, _out_message[i].format.c_str(), (double)val);
+            }
             break;
 
         default: // SG_STRING
@@ -203,11 +214,17 @@
             _in_message[i].prop->setBoolValue( atof(p1) != 0.0 );
             break;
 
-        case FG_DOUBLE:
+        case FG_FLOAT:
             val = _in_message[i].offset + strtod(p1, 0) * _in_message[i].factor;
             _in_message[i].prop->setFloatValue((float)val);
             break;
 
+        case FG_DOUBLE:
+            val = _in_message[i].offset + strtod(p1, 0) * _in_message[i].factor;
+            _in_message[i].prop->setDoubleValue(val);
+            break;
+            
+            
         default: // SG_STRING
              _in_message[i].prop->setStringValue(p1);
         }
@@ -373,6 +390,8 @@
         if (type == "bool")
             chunk.type = FG_BOOL;
         else if (type == "float")
+            chunk.type = FG_FLOAT;                    
+        else if (type == "double")
             chunk.type = FG_DOUBLE;
         else if (type == "string")
             chunk.type = FG_STRING;
