diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp
index ba4b05ecdc6282d5710fa3484747790836bb924d..2b472577b8f94b1ee960b27d1cfef0aa6265be77 100644
--- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp
+++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp
@@ -208,7 +208,6 @@ void PropertyEditor::changeValue(const QString &name)
 
     PropertyEditorValue *value = qobject_cast<PropertyEditorValue*>(QmlMetaType::toQObject(m_currentType->m_backendValuesPropertyMap.value(name)));
 
-
     if (value ==0) {
         qWarning() << "PropertyEditor:" <<name << " - value is null";
         return;
@@ -217,13 +216,9 @@ void PropertyEditor::changeValue(const QString &name)
     QmlObjectNode fxObjectNode(m_selectedNode);
 
     QVariant castedValue;
-    qreal castedExpressionValue;
-    bool converted = false;
-
 
     if (fxObjectNode.modelNode().metaInfo().isValid() && fxObjectNode.modelNode().metaInfo().property(propertyName, true).isValid()) {
         castedValue = fxObjectNode.modelNode().metaInfo().property(propertyName, true).castedValue(value->value());
-        castedExpressionValue = value->expression().toDouble(&converted);
     } else {
         qWarning() << "PropertyEditor:" <<name << "cannot be casted (metainfo)";
         return ;
@@ -243,24 +238,20 @@ void PropertyEditor::changeValue(const QString &name)
         }
     }
 
-
-    if (value->expression() == value->value().toString() || !value->value().isValid() || converted) {
-        if (converted)
-            castedValue = castedExpressionValue;
-
-        if (!value->value().isValid()) {
-            fxObjectNode.removeVariantProperty(propertyName);
-        } else {
-            if (value->value().canConvert<ModelNode>()) {
-                ; //fxObjectNode.setVariantProperty(propertyName, value->value().value<NodeState>().modelNode().toVariant()); ### hmmm only in basestate blah blah
+        try {
+            if (!value->value().isValid()) {
+                fxObjectNode.removeVariantProperty(propertyName);
             } else {
                 if (castedValue.isValid() && !castedValue.isNull())
                     fxObjectNode.setVariantProperty(propertyName, castedValue);
             }
         }
-    } else { //expression
-        changeExpression(name);
-    }
+
+        catch (Exception &e) {
+            qDebug() << "PropertyEditor::changeValue() " << name;
+            qDebug() << e.description();
+            qDebug() << e;
+        }
 }
 
 void PropertyEditor::changeExpression(const QString &name)