Model has different import in Unity 3.5

I have an fbx for a simple animation dummy model. It consists of just a couple of connected bones (CameryDummy_Static (root) and CameraDummy_Anim). When imported in Unity 3.4, it appears in the Project list as CameraDummy, with the child CameraDummy_Anim. After upgrading to Unity 3.5, however, the child is CameraDummy_Static and there’s no sign of CameraDummy_Anim. In game, the animations which move CameraDummy_Anim around no longer have any effect.

Here’s (I hope) the relevant bit of the fbx:

; Object definitions
;------------------------------------------------------------------

Definitions:  {
    Version: 100
    Count: 7
    ObjectType: "GlobalSettings" {
        Count: 1
    }
    ObjectType: "AnimationStack" {
        Count: 1
        PropertyTemplate: "KFbxAnimStack" {
            Properties70:  {
                P: "Description", "KString", "", "", ""
                P: "LocalStart", "KTime", "Time", "",0
                P: "LocalStop", "KTime", "Time", "",0
                P: "ReferenceStart", "KTime", "Time", "",0
                P: "ReferenceStop", "KTime", "Time", "",0
            }
        }
    }
    ObjectType: "AnimationLayer" {
        Count: 1
        PropertyTemplate: "KFbxAnimLayer" {
            Properties70:  {
                P: "Label", "KString", "", "", "Layer"
                P: "Weight", "Number", "", "A+",100
                P: "Mute", "bool", "", "",0
                P: "Solo", "bool", "", "",0
                P: "Lock", "bool", "", "",0
                P: "Color", "ColorRGB", "Color", "",0.8,0.8,0.8
                P: "BlendMode", "enum", "", "",0
                P: "RotationAccumulationMode", "enum", "", "",0
                P: "ScaleAccumulationMode", "enum", "", "",0
                P: "BlendModeBypass", "ULongLong", "", "",0
            }
        }
    }
    ObjectType: "Model" {
        Count: 2
        PropertyTemplate: "KFbxNode" {
            Properties70:  {
                P: "QuaternionInterpolate", "bool", "", "",0
                P: "RotationOffset", "Vector3D", "Vector", "",0,0,0
                P: "RotationPivot", "Vector3D", "Vector", "",0,0,0
                P: "ScalingOffset", "Vector3D", "Vector", "",0,0,0
                P: "ScalingPivot", "Vector3D", "Vector", "",0,0,0
                P: "TranslationActive", "bool", "", "",0
                P: "TranslationMin", "Vector3D", "Vector", "",0,0,0
                P: "TranslationMax", "Vector3D", "Vector", "",0,0,0
                P: "TranslationMinX", "bool", "", "",0
                P: "TranslationMinY", "bool", "", "",0
                P: "TranslationMinZ", "bool", "", "",0
                P: "TranslationMaxX", "bool", "", "",0
                P: "TranslationMaxY", "bool", "", "",0
                P: "TranslationMaxZ", "bool", "", "",0
                P: "RotationOrder", "enum", "", "",0
                P: "RotationSpaceForLimitOnly", "bool", "", "",0
                P: "RotationStiffnessX", "double", "Number", "",0
                P: "RotationStiffnessY", "double", "Number", "",0
                P: "RotationStiffnessZ", "double", "Number", "",0
                P: "AxisLen", "double", "Number", "",10
                P: "PreRotation", "Vector3D", "Vector", "",0,0,0
                P: "PostRotation", "Vector3D", "Vector", "",0,0,0
                P: "RotationActive", "bool", "", "",0
                P: "RotationMin", "Vector3D", "Vector", "",0,0,0
                P: "RotationMax", "Vector3D", "Vector", "",0,0,0
                P: "RotationMinX", "bool", "", "",0
                P: "RotationMinY", "bool", "", "",0
                P: "RotationMinZ", "bool", "", "",0
                P: "RotationMaxX", "bool", "", "",0
                P: "RotationMaxY", "bool", "", "",0
                P: "RotationMaxZ", "bool", "", "",0
                P: "InheritType", "enum", "", "",0
                P: "ScalingActive", "bool", "", "",0
                P: "ScalingMin", "Vector3D", "Vector", "",0,0,0
                P: "ScalingMax", "Vector3D", "Vector", "",1,1,1
                P: "ScalingMinX", "bool", "", "",0
                P: "ScalingMinY", "bool", "", "",0
                P: "ScalingMinZ", "bool", "", "",0
                P: "ScalingMaxX", "bool", "", "",0
                P: "ScalingMaxY", "bool", "", "",0
                P: "ScalingMaxZ", "bool", "", "",0
                P: "GeometricTranslation", "Vector3D", "Vector", "",0,0,0
                P: "GeometricRotation", "Vector3D", "Vector", "",0,0,0
                P: "GeometricScaling", "Vector3D", "Vector", "",1,1,1
                P: "MinDampRangeX", "double", "Number", "",0
                P: "MinDampRangeY", "double", "Number", "",0
                P: "MinDampRangeZ", "double", "Number", "",0
                P: "MaxDampRangeX", "double", "Number", "",0
                P: "MaxDampRangeY", "double", "Number", "",0
                P: "MaxDampRangeZ", "double", "Number", "",0
                P: "MinDampStrengthX", "double", "Number", "",0
                P: "MinDampStrengthY", "double", "Number", "",0
                P: "MinDampStrengthZ", "double", "Number", "",0
                P: "MaxDampStrengthX", "double", "Number", "",0
                P: "MaxDampStrengthY", "double", "Number", "",0
                P: "MaxDampStrengthZ", "double", "Number", "",0
                P: "PreferedAngleX", "double", "Number", "",0
                P: "PreferedAngleY", "double", "Number", "",0
                P: "PreferedAngleZ", "double", "Number", "",0
                P: "LookAtProperty", "object", "", ""
                P: "UpVectorProperty", "object", "", ""
                P: "Show", "bool", "", "",1
                P: "NegativePercentShapeSupport", "bool", "", "",1
                P: "DefaultAttributeIndex", "int", "Integer", "",-1
                P: "Freeze", "bool", "", "",0
                P: "LODBox", "bool", "", "",0
                P: "Lcl Translation", "Lcl Translation", "", "A+",0,0,0
                P: "Lcl Rotation", "Lcl Rotation", "", "A+",0,0,0
                P: "Lcl Scaling", "Lcl Scaling", "", "A+",1,1,1
                P: "Visibility", "Visibility", "", "A+",1
            }
        }
    }
    ObjectType: "NodeAttribute" {
        Count: 2
        PropertyTemplate: "KFbxSkeleton" {
            Properties70:  {
                P: "Color", "ColorRGB", "Color", "",0.8,0.8,0.8
                P: "Size", "double", "Number", "",100
                P: "LimbLength", "double", "Number", "",1
            }
        }
    }
}
; Object properties
;------------------------------------------------------------------

Objects:  {
    NodeAttribute: 706662208, "NodeAttribute::", "LimbNode" {
        Properties70:  {
            P: "Size", "double", "Number", "",0.00021119685152371
        }
        TypeFlags: "Skeleton"
    }
    NodeAttribute: 706661088, "NodeAttribute::", "LimbNode" {
        Properties70:  {
            P: "Size", "double", "Number", "",0.00021119685152371
        }
        TypeFlags: "Skeleton"
    }
    Model: 1049926912, "Model::CameraDummy_Static", "LimbNode" {
        Version: 232
        Properties70:  {
            P: "PreRotation", "Vector3D", "Vector", "",-90,0,0
            P: "RotationActive", "bool", "", "",1
            P: "InheritType", "enum", "", "",1
            P: "ScalingMin", "Vector3D", "Vector", "",0.01,0.01,0.01
            P: "ScalingMax", "Vector3D", "Vector", "",0.01,0.01,0.01
            P: "DefaultAttributeIndex", "int", "Integer", "",0
            P: "LODBox", "bool", "", "",1
            P: "Lcl Translation", "Lcl Translation", "", "A+",-8.20117065813974e-009,9.77976532899995e-017,3.0517578125e-007
            P: "Lcl Rotation", "Lcl Rotation", "", "A+",90.0000006832453,-0.00093755716797416,-1.86693352852222e-005
            P: "Lcl Scaling", "Lcl Scaling", "", "A+",0.0100000000013393,0.0100000000013388,0.0100000000000005
            P: "MaxHandle", "int", "Integer", "U",521
        }
        MultiLayer: 0
        MultiTake: 1
        Shading: T
        Culling: "CullingOff"
    }
    Model: 1049949024, "Model::CameraDummy_Anim", "LimbNode" {
        Version: 232
        Properties70:  {
            P: "InheritType", "enum", "", "",1
            P: "ScalingMin", "Vector3D", "Vector", "",0.01,0.01,0.01
            P: "ScalingMax", "Vector3D", "Vector", "",0.01,0.01,0.01
            P: "DefaultAttributeIndex", "int", "Integer", "",0
            P: "LODBox", "bool", "", "",1
            P: "Lcl Translation", "Lcl Translation", "", "A+",8.20087734609842e-007,-8.67361737988404e-019,-3.01598320220364e-005
            P: "Lcl Rotation", "Lcl Rotation", "", "A+",8.50881020539341e-007,1.86693230966851e-005,-0.000926191288247327
            P: "Lcl Scaling", "Lcl Scaling", "", "A+",0.999999344479615,0.999999940527728,0.999999284744327
            P: "MaxHandle", "int", "Integer", "U",522
        }
        MultiLayer: 0
        MultiTake: 1
        Shading: T
        Culling: "CullingOff"
    }
    AnimationStack: 1048725328, "AnimStack::Take 001", "" {
    }
    AnimationLayer: 1048713616, "AnimLayer::BaseLayer", "" {
    }
}

; Object connections
;------------------------------------------------------------------

Connections:  {
    C: "OO",1049926912,0
    C: "OO",1048713616,1048725328
    C: "OO",1049949024,1049926912
    C: "OO",706662208,1049926912
    C: "OO",706661088,1049949024
}

And the meta file:

fileFormatVersion: 1
guid: c86500e2d2b77ba4a9283a24d9c0a898
ModelImporter:
  importerVersion: 7
  meshes:
    scaleFactor: 1
    useFileUnits: 1
    meshCompression: 0
    generateColliders: 0
    swapUVs: 1
  tangentSpace:
    normalImportMode: 0
    tangentImportMode: 1
    smoothingAngle: 60
    splitTangents: 1
  materials:
    generation: 0
  animations:
    generation: 3
    bakeAnimations: 0
    animationCompression: 1
    animationWrapMode: 0
    splitAnimations: 1
  nodeInfo:
    //RootNode:
    - 100000
    - 400000
    - 11100000
    CameraDummy_Anim:
    - 100002
    - 400002
AssetImporter:
  importerVersion: 1
  fileIDToRecycleName:
    7400000: Take 001 //// CameraDummy

From the support forums:

[Quoting ericksson (Unity test engineer)]

Seems to be related to this known
issue in Unity 3.5 (from the release
notes):

“In 3.5 the behaviour of when to add
an extra root node containing imported
nodes has changed. Previously it was
based on if there are multiple root
nodes and in order to fix issues where
character animation files had only one
but the model had multiple, it was
using the @ notation files to figure
out when to add multiple root nodes.
Now the logic is simply: if any of the
root nodes have a rigged bone attached
or if there are multiple root nodes.
This fixes a lot of issues in
animations. In some rare cases it
might lead to animations not play when
importing, they can be fixed by
matching the number of bones in the
animation fbx file to the fbx file
that contains the model.”

If you can’t fix it using the
suggested solution, please submit a
bug report and attach your .fbx file.

I can’t currently test whether this will fix my problem, but I’m accepting the answer anyway as it seems likely.