diff --git a/lib/skeleton.js b/lib/skeleton.js
index <HASH>..<HASH> 100644
--- a/lib/skeleton.js
+++ b/lib/skeleton.js
@@ -4,6 +4,12 @@ var Promise = require('bluebird');
 var lpad = require('./util').lpad;
 var Class = require('./class');
 
+function isPromise( probe ) {
+
+  return probe instanceof Promise || ( probe && probe.then &&
+    probe.constructor && probe.constructor.name === 'Promise' ); 
+}
+
 function formatPath(dir, name) {
   return path.join(dir, name);
 }
@@ -75,7 +81,7 @@ var Skeleton = Class.extend({
       migration = require(this.path).up.apply(this, params);
 
       if( migration === null ) migration = Promise.resolve();
-      if( migration instanceof Promise ) {
+      if( isPromise( migration ) ) {
 
         migration
         .then(function() {
@@ -118,7 +124,7 @@ var Skeleton = Class.extend({
       migration = require(this.path).down.apply(this, params);
 
       if( migration === null ) migration = Promise.resolve();
-      if( migration instanceof Promise ) {
+      if( isPromise( migration ) ) {
 
         migration
         .then(function() {
refactor(migration): Make check for promise more reliable