diff --git a/modules/org.openbravo.client.application/web/org.openbravo.client.application/example/grid-example.js b/modules/org.openbravo.client.application/web/org.openbravo.client.application/example/grid-example.js
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/example/grid-example.js
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/example/grid-example.js
@@ -103,7 +103,7 @@
 
     // note the actionHandler needs to be set in the grid when it gets created
     // read the SC documentation on what isc.addProperties does    
-    this.selectionGrid = isc.OBTestSelectionGrid.create(isc.addProperties(this.gridProperties, {
+    this.selectionGrid = isc.OBTestSelectionGrid.create(isc.addProperties({}, this.gridProperties, {
       actionHandler: this.actionHandler
     }));
 
diff --git a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-fk-filter.js b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-fk-filter.js
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-fk-filter.js
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-fk-filter.js
@@ -318,7 +318,7 @@
   },
 
   valueIsExpression: function () {
-    var prop, opDefs, val = this.getDisplayValue();
+    var prop, opDefs, val = this.getElementValue();
     // if someone starts typing and and or then do not filter
     // onkeypress either
     if (val.contains(' and')) {
diff --git a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js
@@ -1865,13 +1865,18 @@
   },
 
   redraw: function () {
+    // wasRedrawingSet is needed because SC can call redraw in a nested way
+    var wasRedrawingSet = this._isRedrawing;
     this._isRedrawing = true;
     this.Super('redraw', arguments);
-    delete this._isRedrawing;
-    if (this.selectOnFocusStored) {
-      this.selectOnFocus = this.previousSelectOnFocus;
-      delete this.previousSelectOnFocus;
-      delete this.selectOnFocusStored;
+    if (!wasRedrawingSet) {
+      delete this._isRedrawing;
+
+      if (this.selectOnFocusStored) {
+        this.selectOnFocus = this.previousSelectOnFocus;
+        delete this.previousSelectOnFocus;
+        delete this.selectOnFocusStored;
+      }
     }
   },
 
diff --git a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/CSSMinimizer.java b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/CSSMinimizer.java
--- a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/CSSMinimizer.java
+++ b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/CSSMinimizer.java
@@ -66,6 +66,8 @@
 
   private static Logger log = Logger.getLogger(CSSMinimizer.class);
 
+  static final String IMAGE_SVG = "image/svg+xml";
+
   /**
    * Minify CSS from a reader to a printstream.
    * 
@@ -248,14 +250,17 @@
   private Property[] parseProperties(String contents) {
     ArrayList<String> parts = new ArrayList<String>();
     boolean bCanSplit = true;
+    char stringCharacter = ' ';
     int j = 0;
     String substr;
     for (int i = 0; i < contents.length(); i++) {
+
       if (!bCanSplit) { // If we're inside a string
-        bCanSplit = (contents.charAt(i) == '"');
-      } else if (contents.charAt(i) == '"') {
+        bCanSplit = (contents.charAt(i) == stringCharacter);
+      } else if (contents.charAt(i) == '"' || contents.charAt(i) == '\'') {
         bCanSplit = false;
-      } else if (contents.charAt(i) == ';') {
+        stringCharacter = contents.charAt(i);
+      } else if (bCanSplit && contents.charAt(i) == ';') {
         substr = contents.substring(j, i);
         if (!(substr.trim().equals("") || (substr == null)))
           parts.add(substr);
@@ -310,6 +315,7 @@
       // Parse the property.
       ArrayList<String> parts = new ArrayList<String>();
       boolean bCanSplit = true;
+      char stringCharacter = ' ';
       int j = 0;
       String substr;
 
@@ -317,9 +323,10 @@
 
       for (int i = 0; i < property.length(); i++) {
         if (!bCanSplit) { // If we're inside a string
-          bCanSplit = (property.charAt(i) == '"');
-        } else if (property.charAt(i) == '"') {
+          bCanSplit = (property.charAt(i) == stringCharacter);
+        } else if (property.charAt(i) == '"' || property.charAt(i) == '\'') {
           bCanSplit = false;
+          stringCharacter = property.charAt(i);
         } else if (property.charAt(i) == ':') {
           substr = property.substring(j, i);
           if (!(substr.trim().equals("") || (substr == null)))
diff --git a/modules/org.openbravo.userinterface.smartclient/web/org.openbravo.userinterface.smartclient/js/ob-smartclient.js b/modules/org.openbravo.userinterface.smartclient/web/org.openbravo.userinterface.smartclient/js/ob-smartclient.js
--- a/modules/org.openbravo.userinterface.smartclient/web/org.openbravo.userinterface.smartclient/js/ob-smartclient.js
+++ b/modules/org.openbravo.userinterface.smartclient/web/org.openbravo.userinterface.smartclient/js/ob-smartclient.js
@@ -83,6 +83,19 @@
   return value;
 };
 
+// in a SC upgrade of 30 november 2012 all form items needed to have the getTrimmedDataPath
+// function, but for display fields in grids this did not work.
+isc.DynamicForm.addProperties({
+  _orig_getItem: isc.DynamicForm.getPrototype().getItem,
+  getItem: function(fieldName) {
+    var itm = this._orig_getItem(fieldName);
+    if (itm && !itm.getTrimmedDataPath) {
+      itm.getTrimmedDataPath = function() {};
+    }
+    return itm;
+  }
+});
+
 isc.Layout.addProperties({
 
   destroyAndRemoveMembers: function (toDestroy) {
@@ -398,7 +411,7 @@
 
   // disable tab to icons
   canTabToIcons: false,
-
+  
   _original_validate: isc.FormItem.getPrototype().validate,
   validate: function () {
 
