diff --git a/compiler/browcol.pas b/compiler/browcol.pas
index b2d90f60d9..37d6d67e9f 100644
--- a/compiler/browcol.pas
+++ b/compiler/browcol.pas
@@ -266,7 +266,7 @@ procedure RegisterSymbols;
 implementation
 
 uses
-  globtype,globals,comphook,
+  globtype,globals,comphook,constexp,
 {$ifdef DEBUG}
   verbose,
 {$endif DEBUG}
diff --git a/compiler/constexp.pas b/compiler/constexp.pas
index 12e9cb25e3..47107f171d 100644
--- a/compiler/constexp.pas
+++ b/compiler/constexp.pas
@@ -355,7 +355,7 @@ begin
       if sa xor sb then
         begin
           result.signed:=true;
-          result.svalue:=r;
+          result.svalue:=-r;
         end
       else
         begin
diff --git a/compiler/ncon.pas b/compiler/ncon.pas
index af0071a24d..ab456a898a 100644
--- a/compiler/ncon.pas
+++ b/compiler/ncon.pas
@@ -216,7 +216,7 @@ implementation
         htype : tdef;
       begin
          htype:=v.definition;
-         genenumnode:=cordconstnode.create(v.value,htype,true);
+         genenumnode:=cordconstnode.create(int64(v.value),htype,true);
       end;